//通过guava 实现文件复制
private static String from = "D:\\自定义代码\\Guava\\guava\\src\\1.txt"
private static String to = "D:\\自定义代码\\Guava\\guava\\src\\2.txt"
Files.copy(new File(from),new File(to))
//通过java NIO实现文件复制
java.nio.file.Files.copy(Paths.get(from),
Paths.get(to), StandardCopyOption.REPLACE_EXISTING)
2、移动文件
//to若存在,将被删除,重新生成
Files.move(new File(from),new File(to))
3、按山前锋行读取文件
//读取文件悔闭第一行
String configJson = Files.readFirstLine(file, Charsets.UTF_8)
//将文件每一行读到list里逗晌
List readLines = Files.readLines(file, Charsets.UTF_8)
//按照条件,将文件每行读到list里
Files.readLines(file, Charsets.UTF_8, new LineProcessor>() {
List list = new ArrayList()
@Override
public List getResult() {
return list
}
@Override
public boolean processLine(String arg0) throws IOException {
// TODO Auto-generated method stub
return false
}
})
4、计算文件hashcode (可对比两个文件是否一样)
//Hashing.md5()Hashing.sha256()
HashCode hash = Files.asByteSource(new File(to)).hash(Hashing.sha512())
读取文件行的标准方式是在内存中读取陆滑,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:Files.readLines(new File(path), Charsets.UTF_8)FileUtils.readLines(new File(path))
这种方法带来的问题是文件的所腊宴有行都被存放在内存中,当文件足够大时很快就会导致程早局腊序抛出OutOfMemoryError 异常。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)