问题描述
文本有6G,所以太大,会内存溢出,怎样一边读一边写,能不能拿个例子说明一下谢谢
解决方案
解决方案二:
还要一边读一边写,难度挺高的。
解决方案三:
LS的意思是分批量读取吧。这个的话,很简单,基本上所有的文件读取都是这样做的,不可能一次性全部读完,都会设定一个最大的读取量否则就是给你服务器用的内存,你也受不了。OutputStreamnetOut=client.getOutputStream();OutputStreamdoc=newDataOutputStream(newBufferedOutputStream(netOut));//创建文件读取缓冲区byte[]buf=newbyte[2048];intnum=fos.read(buf);while(num!=(-1)){//是否读完文件doc.write(buf,0,num);//把文件数据写出网络缓冲区doc.flush();//刷新缓冲区把数据写往客户端num=fos.read(buf);//继续从文件中读取数据}fos.close();doc.close();这是以前写的,你看看思路,应该就知道了。
解决方案四:
参考这个,很早以前整理的Filefile=newFile("filename");BufferedInputStreamfis=newBufferedInputStream(newFileInputStream(file),10*1024*1024);//用10M的缓冲读取
时间: 2024-09-25 21:40:15