【问题标题】:Get total size of file in bytes [duplicate]以字节为单位获取文件的总大小[重复]
【发布时间】:2013-01-23 11:46:40
【问题描述】:

可能重复:
java get file size efficiently

我有一个名为 filename 的文件,它位于 E://file.txt

FileInputStream fileinputstream = new FileInputStream(filename);

我想做的是计算这个文件的大小(以字节为单位)。我怎样才能做到这一点?

【问题讨论】:

  • 为什么要用文件输入流来做呢?
  • 这不是重复的答案。如何获取文件大小和如何有效获取文件大小是两个不同的主题。
  • @JanBodnar 你可以提名重新提出这个问题。
  • 完成。我没有注意到那个选项。

标签: java fileinputstream


【解决方案1】:

您可以在File 上使用length() 方法,该方法以字节为单位返回大小。

【讨论】:

  • 这是一个完美的答案,我知道我过去做过很多奇怪的事情来获取文件大小。希望我很久以前就知道这件事!
【解决方案2】:

你不需要 FileInputStream 来计算文件大小,new File(path_to_file).length() 就足够了。或者,如果您坚持,请使用fileinputstream.getChannel().size()

【讨论】:

【解决方案3】:

您可以使用Files.size(new File(filename).toPath()) 做到这一点。

【讨论】:

  • 事后看来,同时需要PathFile 可能非常冗长,@Swapnil 的答案可能更简洁。
  • 是的,但是 Java.nio.Files 是为 java 1.7+ 定义的
  • 请注意,Java 1.6 已经停止使用一段时间了。截至 2015 年 4 月,即使是 1.7 也实际上是 eol。我认为 1.7+ 中可用的这不是一个真正的问题。
  • 我在 2015 年写这篇文章,Java 1.6 仍在我工作的生产环境中使用(并维护!)。遗留系统在现实世界中很常见......
【解决方案4】:
public static void main(String[] args) {
        try {
            File file = new File("test.txt");
            System.out.println(file.length());
        } catch (Exception e) {
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2019-02-18
    相关资源
    最近更新 更多