我要從一個(gè)文本文件中提有用的數(shù)據(jù)
文本文件200多MB
是不是可以建一個(gè)緩存來(lái)把有用的數(shù)據(jù)一段一段的提出來(lái),請(qǐng)問該怎么做?
---------------------------------------------------------------
呵呵,200MB而已...
JAVA中可以使用內(nèi)存映射文件來(lái)操作大文件.
最大可達(dá)2GB.
下面是個(gè)簡(jiǎn)單的示例,更具體的自己看Java API DOCS或相關(guān)資料
import java.io.*;
import java.nio.*;
import java.nio.channels.*;
public class LargeMappedFiles {
static int length = 0x8FFFFFF; // 128 Mb
public static void main(String[] args) throws Exception {
MappedByteBuffer out =
new RandomAccessFile("test.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 = length/2; i < length/2 + 6; i++)
System.out.print((char)out.get(i)); //read file
}
} ///