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

CHo*_*paM 1 java heap

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

处理大量的Excel文件时,我面临每个宝石错误.

Aar*_*lla 5

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

对于大文件,我建议使用BufferedInputStream哪个需要更多内存,但速度也更快.您可以在创建实例时定义缓冲区大小,默认值为8KB,这对大多数用途都有好处.

也就是说,PermGen错误与对象大小无关.对象在堆上分配.PermGen意味着你要加载太多的类.有关如何解决此问题的详细信息,请参阅处理"java.lang.OutOfMemoryError:PermGen space"错误.