场景:
基于行读写文件是基本的需求,有时候数据文件比较大那么采用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();