写大文件
内存溢出的问题
如题,
怎样写出一个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也溢出?