日期:2014-05-20  浏览次数:20862 次

写大文件内存溢出的问题
如题,
怎样写出一个100M左右的文件,而不溢出内存?

------解决方案--------------------
用bufferredreader会溢出吗?楼主试试。
------解决方案--------------------
long length=0xffffff;
String file = "G:\\a.dat ";
MappedByteBuffer out = new RandomAccessFile(file, "r ")
.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, length);
for (int i = 0; i < length; i++)
out.put((byte) 'x ');
System.out.println( "Finished writing ");
for (int i = 0; i < 10; i++)
System.out.println((char) out.get(i)); // read file
------解决方案--------------------
MappedByteBuffer out = new RandomAccessFile(file, "r ")
.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, length);
------解决方案--------------------
up
------解决方案--------------------
帮顶~
------解决方案--------------------
public class LargeFile {

public static void main(String[] args) throws Exception ...{
long length = 0x8ffffff;
MappedByteBuffer out = new RandomAccessFile( "G:\a.dat ", "rw ").getChannel()
.map(FileChannel.MapMode.READ_WRITE, 0, length);
for (int i = 0; i < length; i++)
out.put((byte) 'x ');
System.out.println( "Finished writing ");
for (int i = 0; i < 10; i++)
System.out.println((char) out.get(i)); // read file
}
}
------解决方案--------------------
如果文件太大,最好边读边写
------解决方案--------------------
flush 不行吗?
------解决方案--------------------
100M也溢出?