Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在创建Java文件之前,如何评估文件的大小?_Java_File_Size_Inputstream - Fatal编程技术网

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

在创建Java文件之前,如何评估文件的大小?,java,file,size,inputstream,Java,File,Size,Inputstream,在我的Java程序中,我需要创建文件并在其中写入我可以通过Inputstream的read()方法获得的内容。在创建文件之前,如何评估文件的大小?通常,您不需要知道文件的大小,但如果确实需要,请执行以下操作: 唯一能做到这一点的方法是首先将InputStream中的内容完全读取到内存中,然后查看您有多少 对于如何将其全部读入内存,您有几个选项,其中之一可能是将其写入到内存中。(当然,准备好后,将其写入文件。) 但同样,流的伟大之处在于,你不必把所有的东西都读入记忆;如果你可以避免事先知道尺寸,那

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

通常,您不需要知道文件的大小,但如果确实需要,请执行以下操作:

唯一能做到这一点的方法是首先将
InputStream
中的内容完全读取到内存中,然后查看您有多少

对于如何将其全部读入内存,您有几个选项,其中之一可能是将其写入到内存中。(当然,准备好后,将其写入文件。)

但同样,流的伟大之处在于,你不必把所有的东西都读入记忆;如果你可以避免事先知道尺寸,那就最好了


还要注意,文件在磁盘上占用的空间与文件大小不完全相同;大多数文件系统都是分块工作的(4k、8k、16k、32k),因此在使用8k分块的文件系统上(比如)12k的文件实际上会占用16k的空间。

这取决于所使用的编码,但您可以将其写入memorystream并获得长度。

为什么不使用OutputStream的
write()
编写它?为什么需要知道文件的大小?通常不能。假设inputstream连接到网络套接字,或
/dev/uradom
——它们是“无限的”。请澄清您的用例和实际问题,您的问题无法回答。您可以通过检查要写入文件的字符数(长度)来评估大小。如果可以,会有什么区别?不能在Java中预扩展文件。你的问题还不清楚。什么编码?什么记忆流?