如何在创建之前用Java评估文件大小?

时间:2014-11-09 08:20:46

标签: java file size inputstream

在我的Java程序中,我需要创建文件并在其中写入我可以通过Inputstream read()方法获得的内容。如何在创建文件之前评估文件大小?

2 个答案:

答案 0 :(得分:1)

通常情况下,你不需要知道文件的大小,但如果你真的这么做:

你能做到的唯一方法就是首先将InputStream中的内容完全读入内存,然后看看你有多少。

如何将其全部读入内存有几种选择,其中一种可能是将其写入ByteArrayOutputStream。 (然后,当然,当你准备好时,把它写到文件中。)

但同样,关于流的好处在于你不会 将所有东西都读入内存;如果您可以提前避免需要知道尺寸,那将是最好的。

另请注意,文件在磁盘上占用的空间与文件大小不完全相同;大多数文件系统都以块(4k,8k,16k,32k)工作,因此在使用8k块的文件系统上(例如)12k的文件实际上将占用16k的空间。

答案 1 :(得分:-2)

它取决于所使用的编码,但您可以将其写入内存流并获取长度。