解决方案 »
- ByteBuffer.wrap的问题
- swing窗口的显示问题
- [建议]删除一些挑衅性质的垃圾贴子,或封其发贴人的帐号,或对此类垃圾不于置评,各位也来支持支持小弟的建议
- 怎样实现窗口最小化后变成个图标???(急)
- Kosling每日提问之2004.03.23!--无问题--昨天我妈生日,回家了,今天才回校!
- 今天过生日,放分换好心情(23:30结帖)
- 在JSplitPane中两个拆分窗口中如何传递事件控制,该如何写代码呢?
- 在java中,怎样判断某个端口是否被使用???在线等待!
- 关于用javax.swing.joptionpane的问题?
- 为学java 散分
- 求问如何抓取谷歌图片搜索的结果
- 说好的今天发布Java 8 的呢
byte[]的大小,说明你一次操作最大字节是多少,当然,这个越大,一次处理,所占内存就多大.is.available()返回的应该是文件可读字节数,也就是文件总大小,你这是要一次读完9M到内存后才进行操作.这太奢侈了吧.
如果是一次性读取的话,是不是读完之后,内存就释放了?还是还要等GC处理一下,这个内存才能释放啊?当你独到内存中后,将数据读出,gc会去释放内存
如果是一次性读取的话,是不是读完之后,内存就释放了?还是还要等GC处理一下,这个内存才能释放啊?当你独到内存中后,将数据读出,gc会去释放内存
好像问的离题了。我是不知道怎么设置 这个byte[]的数组的大小呀。所以才来请教你们的,不知道你有没有什么好的建议啊。byte[]的设置和文件的大小也有关系吧?谢谢哈
楼主有认真看我们的回答么?这个byte[]数组的大小跟你读文件时候内存用到的大小有关,byte[]数组的使用是说,你一次读文件的时候最多读多少进内存,比如你的程序,设的是文件的大小,也就是9M,也就是说,程序会一次性读完9M的文件到内存里,如果你的内存不足了,就会溢出,如果程序读得慢,没读完9M之前,你是不能操作其他的.如果你设的大小是1M(1024*1024),就是说程序会分9次来读这个文件,第一次读1M到内存,然后马上处理这1M的内容,处理完后又继续读.虽然读的是9M的文件,其实你的内存只用1M来处理,节省了很多空间.当然,设得小,说明I/O操作会比较频繁,I/O操作耗时比较长,这多少会有点性能上的影响.这看你是想用空间换时间,还是想用时间换空间了.
回到楼主的问题,这个大小怎么设,根据你的实际情况,或者根据你的心情,都可以.我个人习惯是1KB,也就是1024.时间慢总比内存溢出程序崩溃强.如果内存足够的话,我会考虑设大点.
楼主有认真看我们的回答么?这个byte[]数组的大小跟你读文件时候内存用到的大小有关,byte[]数组的使用是说,你一次读文件的时候最多读多少进内存,比如你的程序,设的是文件的大小,也就是9M,也就是说,程序会一次性读完9M的文件到内存里,如果你的内存不足了,就会溢出,如果程序读得慢,没读完9M之前,你是不能操作其他的.如果你设的大小是1M(1024*1024),就是说程序会分9次来读这个文件,第一次读1M到内存,然后马上处理这1M的内容,处理完后又继续读.虽然读的是9M的文件,其实你的内存只用1M来处理,节省了很多空间.当然,设得小,说明I/O操作会比较频繁,I/O操作耗时比较长,这多少会有点性能上的影响.这看你是想用空间换时间,还是想用时间换空间了.
回到楼主的问题,这个大小怎么设,根据你的实际情况,或者根据你的心情,都可以.我个人习惯是1KB,也就是1024.时间慢总比内存溢出程序崩溃强.如果内存足够的话,我会考虑设大点.哈哈 明白了 谢谢你