2017-01-23 6 views
0

私は/ res/rawフォルダに100個のテキストファイルを持っています。私はこのフォルダからファイルの中でHello.txtという名前のファイルを読みたいと思っています。しかし、ファイルの名前は、コードで定義された関数からアクセスするファイルの名前を取得するfile_name_genというString変数に格納されます。この変数名をファイル名としてどのように渡すことができますか。以下は私のコードです。アンドロイドの文字列に名前を保存したテキストファイルを開く方法は?

これは私がしたいことですが、これは私のコードを突然クラッシュさせます。

//Generate_file() is function that gives a string of filename. Here it is 'Hello' 

    file_name_gen=Generate_file(); 
    BufferedReader file_reader = new BufferedReader(new InputStreamReader(this.getResources().openRawResource(R.raw.file_name_gen))); 
    while ((strlines = file_reader.readLine()) != null){ 
    Toast.makeText(this, strlines,Toast.LENGTH_SHORT).show(); 
    } 

関連する参考文献または内容が参考になります。前もって感謝します。

+0

'これは私のコードをクラッシュ'一度あなたがスタックトレース –

答えて

0

あなたはf1、f2、f2 ..... f100のように100のテキストファイル名をすべて与えることができ、arraylistを作ってファイル名を追加し、arrayListにアクセスしてarralistからファイル名を取得できます。以下にコードを説明します。

//add the name dynamically by for loop 
    ArrayList<String> myfileNames=new ArrayList<>(); 

     for(int i=1;i<=100;i++) 
     myfileNames.add("f"+i+".txt"); 
    //and get the name of file suppose you have selected file 20 so you can get the 
    // file name as 
     Generate_file(int position) 
{ 
     String filName=myfileNames(position); 
return fileName; 
} 

これは、生のフォルダからテキストファイルを読み込むためのコード

String str=""; 
     StringBuffer buf = new StringBuffer();   
     InputStream is = this.getResources().openRawResource(R.raw.test); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UNICODE")); 
     if (is!=null) {       
      while ((str = reader.readLine()) != null) { 
       buf.append(str + "\n"); 
      }    
     }  
     is.close(); 
+0

を追加する必要がcrash'単語が '私が渡したいと述べていますファイル名を開きます。私はそれを変数に保存しました。文字列変数をファイル名として渡して開く方法を知るだけでいいです。 –

+0

関数内に上記のコードを入れてbuf.toString()にキャストbufオブジェクトを入れ、関数から文字列を返すとうまくいくでしょう... –

関連する問題