开发中遇到对数据库导出到文件里的数据进行处理,然后对处理后的数据再重新写回文件中,在这个过程中使用到了Files.readLines()
方法
/**
*
* @param file : existed file
* @throws IOException
*/
public void lineProcess(File file) throws IOException {
Files.readLines(file, Charset.defaultCharset(), new LineProcessor() {
File outFile = new File("outfile");//处理后的数据输出文件
List<String> lines = new ArrayList<String>();
@Override
public boolean processLine(String line) throws IOException {
String newLine = "";
//file中的 line数据格式:name,age,address -> NAME,AGE,ADDRESS,
String[] contents = line.split(",");
for (int i=0;i<contents.length;i++){
newLine.concat(contents[i].toLowerCase());
}
lines.add(newLine);
//将处理后的数写入新的文件 outFile
FileUtils.writeLines(outFile,lines,true);
lines.clear();
return true;
}
@Override
public Object getResult() {
try{
FileUtils.writeLines(outFile,lines,true);
}catch (Exception e){
e.getCause();
}
lines.clear();
return null;
}
});
}
方法中的LineProcessor()
实现对每一行数据处理逻辑。
依赖guava
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>