2017-01-23 52 views
0

我在/ RES /原始文件夾100個的文本文件。我想從這個文件夾中的文件中讀取一個名爲Hello.txt的文件。但該文件的名稱存儲在一個字符串變量命名file_name_gen其獲取要在代碼中定義的函數訪問的文件的名稱。我怎樣才能傳遞這個變量名作爲文件名。以下是我的代碼。如何打開文本文件,它的名字存儲在Android的字符串?

這就是我想做的事情,但這個突然崩潰我的代碼。

//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

'這個崩潰我的代碼代碼'曾經說過一句話'crash'你必須添加一個堆棧跟蹤 –

回答

0

你可以給你的所有100條的文件名作爲F1,F2,F2 ..... F100,使一個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

我想通過文件名來打開它。我將它存儲在一個變量中。只需要知道如何傳遞一個字符串變量作爲文件名來打開它。 –

+0

WIRTE在功能上面的代碼和投BUF對象buf.toString(),並返回從函數的字符串...它會工作得很好... –

相關問題