2016-09-23 81 views
0

我尝试创建一个项目,可以把它读txt文件,但表现出来的下一个错误:在“资产”如何读取文件的txt到项目文件夹中的Android

/data/user/0/com.example.asojac.probandobuffer/files/hola.txt: open failed: ENOENT (No such file or directory)

该文件夹

我的方法是这样的:

public String getTexto() { 
     try { 
      File fileDir = new File(getFilesDir().getPath() +"/hola.txt"); 
      BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "ISO-8859-1")); 
      String str, str2=""; 

      while ((str = in.readLine()) != null) { 
       str2 += "\n" + str; 
      } 
      in.close(); 
      return str2; 

     } catch (Exception e) { 
      Log.e("TAG Exception" , e.getMessage()); 
     } 
     return ":("; 
    } 

在AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

我也试过白衣:

File fileDir = new File(getFilesDir() + "/hola.txt"); 
      BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "ISO-8859-1")); 
+3

使用AssetManager访问文件从资产文件夹'AssetManager AM =上下文.getAssets(); InputStream is = am.open(“hola.txt”);' – Michael

+0

资产不是文件。它们在您的APK中,并且您通过AssetManager API访问它们 –

回答

0

确保目录存在:

File fileDir = new File(getFilesDir().getPath()); 
fileDir.mkdirs(); 
File file = new File(dir, "hola.txt"); 
1

试试这个:

InputStream is; 
is = context.getAssets().open("hola.txt"); 
+0

它是最接近的解决方案,但它不起作用。 –

相关问题