android - 读取用户创建的文件

时间:2014-05-19 08:50:42

标签: java android eclipse file io

找不到太多关于如何读取SD卡或存储上某处的文件,而是在android项目目录中找到的文件。

我不断收到 FileNotFoundException 。这就是我声明文件的方式,

File SPPolicy = new File("SHPR_policy");

将它放入 src /目录 src / [[package]] /目录和主项目目录时,我遇到了同样的错误,我收到这个错误:

java.io.FileNotFoundException: /SHPR_policy: open failed: ENOENT (No such file or  directory)

我有什么地方可以放这个文件吗?是因为我的文件没有扩展名(我在SHPR_policy之前注意到了“/”但是我认为这不是问题,因为 Eclipse 让我创建一个没有扩展名的文件)?

3 个答案:

答案 0 :(得分:0)

将文件保存在原始文件夹中,然后尝试以下代码。

 try
 {
        Resources res = getResources();
        InputStream in_s = res.openRawResource(R.raw.test);

        byte[] b = new byte[in_s.available()];
        in_s.read(b);
        txtHelp.setText(new String(b));
    } catch (Exception e) {
        // e.printStackTrace();
        txtHelp.setText("errr.");
    }

答案 1 :(得分:0)

使用以下代码检查文件是否已创建:

File f;
f=new File("myfile");
if(!f.exists()){
  f.createNewFile();
}

此外,如果要在外部目录中分配文件,可以使用以下代码:

File newxmlfile = new File( Environment.getExternalStorageDirectory() + "/new.xml");
XmlSerializer serializer = Xml.newSerializer();
try {
   newxmlfile.createNewFile();
} catch (Exception e) {
   Log.e("IOException", "exception in createNewFile() method", e);
}

并且,您是否在清单中添加了权限以便能够操作文件?

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

答案 2 :(得分:0)

您应该将文件放在assets文件夹中并使用:

   InputStream ims = getAssets().open("SHPR_policy");