2013-05-29 38 views
29

使用Google新的Android Studio IDE獲得了一個全新的項目。在Android Studio中加載一個簡單的文本文件

我想加載一個簡單的文本文件,使用InputStreamReader。我收到一個文件未找到異常。現在沒有任何資產/文件夾。我試圖創建一個,並在許多不同的地方添加我的文件(在項目的根目錄下,在.java文件的根目錄等等)我試着移動文件但仍然不能獲取文件找到。

現在,從來沒有使用Eclipse的問題,因爲有任何模板創建的資產文件夾。

有誰知道資產應該放在哪裏或如何加載它們?

下面是使用的代碼,它沒有在。開():

InputStream iS = resources.getAssets().open("bla.txt"); 
BufferedReader reader = new BufferedReader(new InputStreamReader(iS)); 

我也試過在Eclipse中的代碼,它的工作原理以及該文件的內容得到加載。所以在Android Studio中可能需要一個步驟。

+0

當你創建它時會發生什麼?原諒我,但你的經驗水平表明你不應該使用未發佈的產品進行開發。 – Simon

+0

創建什麼? streamReader? –

+0

不,資產文件夾。 – Simon

回答

87
  1. 步驟1: 開啓在Name_Project-Name_Project.iml文件。
  2. 見行: 選項名稱= 「ASSETS_FOLDER_RELATIVE_PATH」 值= 「/ SRC /主/資產」
  3. 步驟2: 創建在主文件夾的子文件夾 「資產」。
  4. 第3步: 將文件放入此文件夾中。
  5. 第4步: 加載它。完成。
+1

正確答案。 .iml文件中的路徑條目是關鍵。謝謝。 –

+1

傑出的...一直在尋找這一個多小時,所有基於Eclipse的想法都失敗了。謝謝FIT226557! :) –

+0

這讓我非常沮喪!謝謝! +1 – kev

1

此代碼將爲你工作,它將從文件中提取所有數據。

public class Quiz extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_quiz); 
    try { 
     PlayWithRawFiles(); 
    } catch (IOException e) { 
     Toast.makeText(getApplicationContext(), 
       "Problems: " + e.getMessage(), Toast.LENGTH_LONG).show(); 
    } 
}// onCreate 

public void PlayWithRawFiles() throws IOException { 
    String str=""; 
    StringBuffer buf = new StringBuffer(); 
    InputStream is = this.getResources().openRawResource(R.raw.ashraf); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    if (is!=null) { 
     while ((str = reader.readLine()) != null) { 
      buf.append(str + "\n"); 
     } 
    } 
    is.close(); 
    TextView tv=(TextView)findViewById(R.id.tv1); 
    tv.setText(buf.toString()); 


}// 
     } 
+0

你必須在res目錄下創建原始文件夾並在那裏添加你的文件 – Ashraf