我有一個文本文件放置在資產中,我想一次讀取它的一行。我的問題是我不知道如何訪問Activity中的文件,然後一旦我訪問它,我將如何去選擇一行?讀取資產中的一個txt文件的行
如果在資產中保留txt文件是一個壞主意,我應該在哪裏放置它以便於訪問?
我真的很感謝任何幫助!
我有一個文本文件放置在資產中,我想一次讀取它的一行。我的問題是我不知道如何訪問Activity中的文件,然後一旦我訪問它,我將如何去選擇一行?讀取資產中的一個txt文件的行
如果在資產中保留txt文件是一個壞主意,我應該在哪裏放置它以便於訪問?
我真的很感謝任何幫助!
要打開入資產價值,你就需要調用
<context>.getAssets().open(<your file>);
<context>
是你的活動,所以如果這是你的onCreate
,那麼這將是this
。該調用返回一個輸入流,然後您可以隨意處理。
我不明白如何讓文本文件保留在那裏是一個特別糟糕的主意,取決於你使用的文本文件。
這是我用於預填充RSS提要閱讀器中表格的代碼片段。您可以將其用作滿足您需求的軌道。我有文件feeds.txt
。該文件被引用的代碼是R.raw.feeds
。
final Resources resources = mHelperContext.getResources();
InputStream inputStream = resources.openRawResource(R.raw.feeds);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream), 8192);
try {
String line;
while ((line = reader.readLine()) != null) {
//make the use you want with "line"
}
} catch (IOException e) {
Log.e(TAG, "Error loading sample feeds.");
throw new RuntimeException(e);
}
謝謝!我用res/raw中的文件嘗試過,但我認爲我現在只是將它保留在資產中! –
試試這個:
製作例如readMyFile的新方法()。 它必須看起來像這樣:
private String readMyFile(File file) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuilder txt = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
txt.append(line);
txt.append("\n");
}
reader.close();
return txt.toString();
將其粘貼到您的代碼,並使用方法(readMyFile()要在資產讀什麼文件]
希望它可以幫助
。
謝謝!結合使用代碼將輸入流更改爲bufferedreader,然後使用我的方法來讀取bufferedreader的一行完美工作! –
嗯,其實我現在遇到了一些麻煩,如果我想把這個代碼插入onClick按鈕?當我嘗試時,它表示它沒有定義OnClickListener。我該怎麼做才能解決這個問題? –
什麼是未定義的? – Otra