-3

它们之间有什么区别,我该如何选择使用哪一个?

4

2 回答 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 回答