2015-07-21 273 views
3

我在Android Studio中製作項目,我在項目文件夾中有一個文本文件,每次編譯時,我都希望我的代碼讀取.txt文件。當所有東西都完成後,我希望.txt文件在.apk文件中。我不試圖從SD卡等讀取Android閱讀文本文件

但我每次編譯時都會收到「文件未找到異常」。在使用eclipse時,如果將.txt文件放在與項目相同的目錄中,代碼可以毫無問題地找到.txt文件,但在Android Studio中,它找不到我剛創建的文本文件。我在哪裏必須將我的.txt文件放入我的項目文件夾中?
下面是代碼:

FileReader in = new FileReader("TEXTgreetingKeywords.txt"); 
final BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

我用同樣的方法來讀取在Java中的文本文件。我不明白爲什麼它不適用於Android,因爲它也使用Java。

EDIT ------

我用資產管理公司,但我又

AssetManager asset = getAssets(); 
    try { 
     in = asset.open("text.txt"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

得到了同樣的錯誤,我必須將目錄更改爲類似「C:\軟件\主\ text.txt「?

+0

也許'資產'文件夾是你正在尋找的 –

回答

1

要完成R. Adang評論: 您正在尋找assets文件夾。您必須將它放在與res文件夾相同的地方。 APK中將包含assets中的文件。

您可以使用AssetManager訪問assets中的文件。通過使用context.getAssets()

+0

感謝您的完成! :P在這裏,爲你加價 –

+0

我按照你的說法試過,我創建了一個資產文件夾,但是當我嘗試使用代碼訪問它時,我又得到了同樣的錯誤。我正在編輯這個問題,你可以再檢查一次嗎? – berkc

+0

我嘗試了同樣的事情,沒有任何問題。你是如何創建資產文件夾的?我在這裏:MyApplication/app/src/main –

0

獲取您的AssetManager的實例在這種情況下,文件訪問不僅僅是java的東西,您也可以在這裏使用android,這會產生問題。通過使用File您正在努力的是從應用程序位置打開文件。要找到你的文件目錄,你應該使用:context.getFilesDir()

比你使用基本的File構造。我希望這是你在找什麼

1

閱讀的文本文件資產

創建資源目錄文件夾原料

粘貼您在原料文件文件夾:

閱讀文本 from 文件

private String readText() { 
     InputStream inputStream = getResources().openRawResource(
       R.raw.license_agreement); 
     ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
     int i; 
     try { 
      i = inputStream.read(); 
      while (i != -1) { 
       byteArrayOutputStream.write(i); 
       i = inputStream.read(); 
      } 
      inputStream.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return byteArrayOutputStream.toString(); 
    } 

希望它會幫助你。