java使用文件和文件系统:在NIO之前,使用NIO以及将来使用NIO2
在Java1.4之前,通过在不同的InputStreams/OutputStreams之间移动字节来处理文件是常见的做法
由于添加了NIO的Java 1.4,因此建议使用通道来执行相同的操作
有了Java 7中的NIO2,Java中还会有另一个API。尼奥。文件,该文件支持执行以下操作:
val source = Paths.get("fooDir/fooFile.txt")
val target = Paths.get("barDir/barFile.txt")
source moveTo target
source createLinkTo target
如果不想手动触摸字节,older ones more or less useless现在是否用于文件系统操作
# 1 楼答案
我会在这里加上我的2美分@Ymajoros和@Matt总结得很好
当然,新的NIO将比前代更好。旧的文件io类有很多限制。我已经从C++的背景中发现,即使API更容易使用,但是它们缺少很多特征。现在,如果你查看这些类,如果你试图查询远程目录,你可能会看到一些缓慢或你的JVM可能挂起。这将在第7节中修复。还需要注意的是,一些文件系统支持符号链接,并且有相应的处理方法。迭代器被添加到目录列表中,它还将支持POSIX和ACL控制模型
# 2 楼答案
如果可以,最好使用更新的API。他们通常更擅长处理像符号链接这样的角落案件。它们也更可能直接构建在操作系统原语上,从而提供更好的硬件利用率。所以对你的问题的简短回答是“是的,旧的几乎没用”。新API的最大缺点是需要安装新的JRE