Java 对象的大小取决于它读取的内容

Java 对象的大小取决于它读取的内容,java,heap,Java,Heap,如果我有两个inputStream对象,分别读取/保存4gb和4mb的文件。对象的大小是多少?对象的大小取决于内容的大小吗 在处理巨大的Excel文件时,我面临每gem错误。InputStream类型的对象只需要几个字节,而不管底层流有多大。对于文件,它只会记住操作系统的文件描述符,而文件描述符又会跟踪文件中的当前位置 对于大文件,我建议使用BufferedInputStream,它需要更多内存,但速度也更快。您可以在创建实例时定义缓冲区大小,默认值为8KB,这在大多数情况下都适用 也就是说,P

如果我有两个inputStream对象,分别读取/保存4gb和4mb的文件。对象的大小是多少?对象的大小取决于内容的大小吗

在处理巨大的Excel文件时,我面临每gem错误。

InputStream类型的对象只需要几个字节,而不管底层流有多大。对于文件,它只会记住操作系统的文件描述符,而文件描述符又会跟踪文件中的当前位置

对于大文件,我建议使用BufferedInputStream,它需要更多内存,但速度也更快。您可以在创建实例时定义缓冲区大小,默认值为8KB,这在大多数情况下都适用

也就是说,PermGen错误与对象大小无关。对象是在堆上分配的。PermGen意味着您加载了太多的类。有关如何修复它的详细信息,请参阅。

InputStream类型的对象只需要几个字节,而不管底层流有多大。对于文件,它只会记住操作系统的文件描述符,而文件描述符又会跟踪文件中的当前位置

对于大文件,我建议使用BufferedInputStream,它需要更多内存,但速度也更快。您可以在创建实例时定义缓冲区大小,默认值为8KB,这在大多数情况下都适用


也就是说,PermGen错误与对象大小无关。对象是在堆上分配的。PermGen意味着您加载了太多的类。有关如何修复的详细信息,请参阅。

是否需要将整个文件读取到内存中?@chowdapam内存中的大型文件将占用大量空间。如何读取文件?你能展示一些代码吗?你用一些API解析Excel文件吗?什么版本的Java?你需要将整个文件读入内存吗?@chowdapam内存中的巨大文件将占用巨大的空间。你如何读取文件?你能展示一些代码吗?你用一些API解析Excel文件吗?什么版本的Java?