您的位置:首页 > 编程语言 > Java开发

Java中读取一个TXT文件中的每行内容的前5个字符,并保存到另一个TXT文件中。

2016-03-15 12:28 816 查看
曾经的一道面试题:读取一个文件“员工信息.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/员工
9a7f
信息.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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: