2011-08-08 13 views
0

私はアセットに配置されたテキストファイルを持っており、一度に1行を読みたいと思っています。私の問題は、アクティビティでファイルにアクセスする方法がわからず、一度アクセスすれば、どのようにして1行だけを選択すればよいのでしょうか?アセット内のtxtファイルの行を読み取る

txtファイルをアセットに保持することは悪い考えですが、どこに簡単にアクセスできるようにする必要がありますか?

本当に助けていただきありがとうございます。

答えて

1

assestsを開くには、

<context>.getAssets().open(<your file>); 

<context>を呼び出す必要がありますあなたの活動なので、これはあなたのonCreateにある場合、それはthisだろう。その呼び出しは入力ストリームを返します。あなたはそれを処理することができます。

あなたのテキストファイルを保存するのは特に悪い考えですが、そのテキストファイルを使用しているかどうかによって異なります。

+0

ありがとうございます!これは、inputstreamをbufferedreaderに変更して、私のメソッドを使ってバッファリングされたreaderの行を読み込んだら完璧に動作したコードと結びついています! –

+0

実際、今は少し問題があります。 OnClickListenerには未定義であると言われていますが、それを修正するには何ができますか? –

+0

未定義とは何ですか? – Otra

2

これは私のRSSフィードリーダーのテーブルをあらかじめ用意しておくためのスニペットです。あなたのニーズに合わせたトラックとして使うことができます。

res/raw/私はファイル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); 
    } 
+0

ありがとうございます!私はres/rawのファイルで試してみましたが、今のところそれを資産に残すつもりだと思います! –

-1

これを試してみてください:

は、たとえば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([あなたが資産に読みたいものをファイル])を使用し

はそれが役に立てば幸い

関連する問題