テキスト ファイルから単語を読み取る辞書アプリに取り組んでいますが、テキスト ファイルのサイズが 10 MB であるため、メモリの制限により、エミュレーターまたはデバイスで実行できません。
では、この問題の解決策は何ですか? 圧縮されているテキスト ファイルを zip から読み取ることはできますか、それとも 10 個の個別のテキスト ファイルにそれぞれ 1 MB ずつ分割する方がよいでしょうか?
以下は、テキスト ファイルを読み取るための現在のコードです。コードにどのような変更を加える必要がありますか?
private synchronized void loadWords(Resources resources) throws IOException {
if (mLoaded) return;
Log.d("dict", "loading words");
InputStream inputStream = resources.openRawResource(R.raw.definitions);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
String line;
while((line = reader.readLine()) != null) {
String[] strings = TextUtils.split(line, ":");
if (strings.length < 2) continue;
addWord(strings[0].trim(), strings[1].trim());
}
} finally {
reader.close();
}
mLoaded = true;
}
public synchronized List<Word> getAllMatches(Resources resources) throws IOException {
List<Word> list = new ArrayList<Word>();
InputStream inputStream = resources.openRawResource(R.raw.definitions);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
String line;
while((line = reader.readLine()) != null) {
String[] strings = TextUtils.split(line, ":");
if (strings.length < 2) continue;
Word word = new Word(strings[0].trim(), strings[1].trim());
list.add(word);
}
} finally {
reader.close();
}
return list;
}