如果我有2个inputStream
个对象分别读取/保存4gb和4mb的文件。物体的大小是多少?对象的大小取决于内容吗?
我在处理大量Excel文件时遇到了每个宝石错误。
答案 0 :(得分:5)
类型InputStream
的对象只需要几个字节,无论底层流有多大。对于文件,它只记住操作系统的文件描述符,后者又跟踪文件中的当前位置。
对于大文件,我建议使用需要更多内存的BufferedInputStream
,但速度也更快。您可以在创建实例时定义缓冲区大小,默认值为8KB,这对大多数用途都有用。
也就是说,PermGen错误与对象大小无关。对象在堆上分配。 PermGen意味着你要加载太多的类。有关如何解决此问题的详细信息,请参阅Dealing with "java.lang.OutOfMemoryError: PermGen space" error。