我正在嘗試開發使用res/raw源文件的字典應用程序。 它適用於當我使用一個較小的文件,但不是與我必須使用哪個是cca 5mb的文件。使用res/raw的大文件
我決定將它拆分成幾部分,並以這種方式使用它,因爲它顯示android對assets文件夾(1mb?)有一些文件大小限制。 但它不這樣工作,它加載程序中的東西,但不是所有的字典文件。什麼似乎是問題?我對此有完全錯誤的看法嗎?
private void loadWords() throws IOException {
final Resources resources = mHelperContext.getResources();
InputStream inputStream = resources.openRawResource(R.raw.definitions1);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
ucitaj(reader);
InputStream inputStream2 = resources.openRawResource(R.raw.definitions2);
BufferedReader reader2 = new BufferedReader(new InputStreamReader(inputStream2));
ucitaj(reader2);
InputStream inputStream3 = resources.openRawResource(R.raw.definitions3);
BufferedReader reader3 = new BufferedReader(new InputStreamReader(inputStream3));
ucitaj(reader3);
InputStream inputStream4 = resources.openRawResource(R.raw.definitions4);
BufferedReader reader4 = new BufferedReader(new InputStreamReader(inputStream4));
ucitaj(reader4);
InputStream inputStream5 = resources.openRawResource(R.raw.definitions5);
BufferedReader reader5 = new BufferedReader(new InputStreamReader(inputStream5));
ucitaj(reader5);
InputStream inputStream6 = resources.openRawResource(R.raw.definitions6);
BufferedReader reader6 = new BufferedReader(new InputStreamReader(inputStream6));
ucitaj(reader6);
-
private void ucitaj(BufferedReader reader) throws IOException {
Log.d(TAG, "Loading words...");
try {
String line;
while ((line = reader.readLine()) != null) {
String[] strings = TextUtils.split(line, " -- ");
if (strings.length < 2) continue;
long id = addWord(strings[0].trim(), strings[1].trim());
if (id < 0) {
Log.e(TAG, "unable to add word: " + strings[0].trim());
}
}
} finally {
reader.close();
}
Log.d(TAG, "DONE loading words.");
}
「它加載程序中的東西,但不是所有的字典文件」究竟裝載什麼,什麼不是?你能給我們提供'ucitaj'方法的代碼嗎? – 2010-11-15 12:12:45
我在這裏添加了ucitaj方法,但是在調試究竟是什麼被加載的時候有一些問題,因爲它將數據保存到android上的sqlite數據庫中,並且在計算機上正確調試它有點困難。 – stratocaster 2010-11-15 14:35:41