Java以行读写文件

场景:

基于行读写文件是基本的需求,有时候数据文件比较大那么采用apache 的common io包就不合适了,那么就需要最基础的api去读写

实现:

基于apache common:

读操作:

public static void apacheIOR(String file) throws Exception {
	List<String> lines = IOUtils.readLines(new FileInputStream(file));
	System.out.println(lines);
}
public static void apacheIOREncoding(String file) throws Exception {
	List<String> lines = IOUtils.readLines(new FileInputStream(file), Charsets.UTF_8.name());
	System.out.println(lines);
}

基于FileUtils的读操作:

FileUtils.readLines(file);
FileUtils.readLines(file, encoding);

写操作:

public static void apacheIOW(String file,List<String> lines) throws Exception {
	 IOUtils.writeLines(lines, null, new FileOutputStream(file));
}
public static void apacheIOWEncoding(String file,List<String> lines) throws Exception {
	IOUtils.writeLines(lines, null, new FileOutputStream(file), Charsets.UTF_8.name());
}

基于FileUtils的写操作:

FileUtils.writeLines(file, lines, append);
FileUtils.writeLines(file, encoding, lines, lineEnding, append);
FileUtils.writeLines(file, encoding, lines)

基于Java 基础api的实现:

读操作:

String file = "C:/data/someabcd.dat";
BufferedReader fileReader = new BufferedReader(new FileReader(file));
String line = null;
while (StringUtils.isNotEmpty(line = fileReader.readLine())) {
 //deal line your biz
}
fileReader.close();

写操作:

 FileWriter fw=new FileWriter(file);
 BufferedWriter bw=new BufferedWriter(fw);
 bw.write(str);
 bw.newLine();
 bw.close();

 

你可能感兴趣的:(java)