2015-07-21 218 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(); 
    } 

希望它会帮助你。