Files.size()在Java 7中的实现
Java中的Files.size()在Java 7中的实现,java,Java,Java中的file.length()和Files.size()之间在实现上有什么区别吗?Java7引入了Files.size()方法。主要区别在于可以处理非“常规文件”(定义为)的内容 这意味着,根据您可用的文件类型,它可以获得ZIP文件中文件的大小,可以处理通过FTP/SFTP访问的文件 普通的老人做不到这一点。JDK 7中的java.nio.file.files类提供对文件进行操作的静态方法 Files.size(字符串路径)方法返回基于字符串的文件大小。这与File.length()无关
file.length()
和Files.size()
之间在实现上有什么区别吗?Java7引入了Files.size()
方法。主要区别在于可以处理非“常规文件”(定义为)的内容
这意味着,根据您可用的文件类型,它可以获得ZIP文件中文件的大小,可以处理通过FTP/SFTP访问的文件
普通的老人做不到这一点。JDK 7中的
java.nio.file.files
类提供对文件进行操作的静态方法
Files.size(字符串路径)
方法返回基于字符串的文件大小。这与File.length()
无关,因为它会返回实际“连接”到的实际文件大小。一个重要的区别是Files.size()
在出现问题时抛出IOException,而File.length()
仅返回0。因此,我建议使用Files.size()
,因为:
- 无法区分空文件和使用
发生的错误,因为在这两种情况下它都将返回0file.length()
- 如果发生错误,您将无法通过
获得有关错误原因的任何信息。相反,从File.length()
引发的IOException通常会包含一条指示故障原因的消息Files.size()
Files.size()
可以与任何文件系统提供程序(例如,ZIP或FTP文件系统)一起使用,而file.length()
只能与操作系统公开的“常规”文件系统一起使用
结论:一般来说,与传统的文件
类相比,更喜欢较新的文件
类中的方法。根据文档返回“实际文件大小”:返回文件大小(以字节为单位)。由于压缩、支持稀疏文件或其他原因,该大小可能与文件系统上的实际大小不同代码>