它们之间有什么区别,我该如何选择使用哪一个?
问问题
1482 次
2 回答
2
File.renameTo() 更改文件的名称。如果目标文件名在另一个文件系统上,它可能会复制文件的内容,但这取决于平台。
NIO 的 FileChannel.transferTo() 方法实际上将 FileChannel(例如文件)的内容(即字节)复制到另一个位置。
因此,如果您在同一文件系统上使用 renameTo(),则不会读取/写入任何字节,只会更改目录列表中的文件名。
于 2013-08-06T04:06:50.720 回答
0
Java NIO
1- 在 Java NIO 中,您可以将数据直接从一个通道传输到另一个通道。
2- 可以使用 java.nio.channels.FileChannel 类的 transferTo(..) 和 transferFrom(..) 方法传输数据。
3- 这些方法使用文件系统的底层优化,因此在某些情况下数据传输可能很快,尤其是对于大文件。但是,请注意,该实现是特定于文件系统的,声称此方法总是更快是错误的
文件.重命名为
Java.io.File 不包含任何现成的移动文件方法,但您可以使用以下两种替代方法来解决:1 -File.renameTo()。2-复制到新文件并删除原始文件
如果您的目标路径位于不同的文件系统上,则 renameTo 不起作用。它只会返回 false
于 2013-08-06T04:13:52.430 回答