我試圖尋找的268萬個字的列表。這個想法是檢查用戶輸入的單詞是否存在於該列表中。我已經用一個簡單的I/O流完成了這個工作,但是搜索需要5秒鐘,這個時間太長了。我的文件目前位於資產。我尋找更有效的方式來搜索我的文件,並且我遇到了內存映射緩衝區。但是,我也不清楚,我應該存儲在下面的例子中我的文件:內存映射文件的位置
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
public class ReadFiles {
private static String largeFile = "sowpods.txt";
public static void read() throws IOException {
File file = new File(largeFile);
FileChannel fileChannel = new
RandomAccessFile(file,"r").getChannel();
MappedByteBuffer buffer = fileChannel.map(
FileChannel.MapMode.READ_ONLY, 0, fileChannel.size());
System.out.println(buffer.isLoaded());
System.out.println(buffer.capacity());
}
}
如果我離開它的資產,我從它如何看?目前,我收到「sowpods.txt:打開失敗:ENOENT(沒有這樣的文件或目錄)」錯誤消息。感謝您的任何提示!
如果要加載的文件是/資產不會路徑是「資產/ sowpods.txt」? – mcw
不幸的是,它不能以這種方式訪問。但是,非常感謝。 –