曾经的一道面试题:读取一个文件“员工信息.txt”, 取每行内容的前5个字符,存储到“员工姓名.txt”文件中。
方法一:
package test01;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
public class FileTest {
private List<String> list = new ArrayList<String>();
private String temp;
public static void main(String[] args) {
FileTest fileTest = new FileTest();
fileTest.readFile("E:/work/a.txt");
fileTest.printFile("E:/work/b.txt");
System.out.println(fileTest.list);
}
public void readFile(String fileName) {
try {
FileReader fileReader = new FileReader(new File(fileName));
BufferedReader bufferedReader = new BufferedReader(fileReader);
while ((temp = bufferedReader.readLine()) != null) {
list.add(temp);
}
bufferedReader.close();
fileReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void printFile(String fileName) {
try {
FileWriter fileWriter = new FileWriter(new File(fileName));
BufferedWriter bufWriter = new BufferedWriter(fileWriter);
for (int i = 0; i < list.size(); i++) {
bufWriter.write(list.get(i), 0, 5);//读取前5个字符
bufWriter.newLine();
}
bufWriter.close();
fileWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
方法二:
package test01;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
public class ReadFile03 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
String s = null;
File f1 = new File("E:/work/员工信息.txt");//员工信息中要有员工数据
File f2 = new File("E:/work/员工姓名.txt");
try {
// 读取“员工信息.txt”文件
FileReader fileReader = new FileReader(f1);
BufferedReader bufferedReader = new BufferedReader(fileReader);
while ((s = bufferedReader.readLine()) != null) {
list.add(s);
}
System.out.println(list);// 打印list中读到的数据
// 写入“员工姓名.txt”文件
FileWriter fileWriter = new FileWriter(f2);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
for (int i = 0; i < list.size(); i++) {
bufferedWriter.write(list.get(i), 0, 5);// 截取前5个字符
bufferedWriter.newLine();
}
// 关闭流
bufferedReader.close();
fileReader.close();
bufferedWriter.close();
fileWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}