对以下错误:

java.lang.RuntimeException: java.lang.IllegalArgumentException: File /data/data/com.alex.datasave/files/user.txt contains a path separator


原先代码:

fis = this.context.openFileInput("/data/data/com.alex.datasave/files/user.txt");


正确代码:

File file = new File("/data/data/com.alex.datasave/files/user.txt");
fis = new FileInputStream(file);


注意:
1.FileInputStream 与 openFileInput


补充知识:

public abstractFileOutputStreamopenFileOutput(Stringname, int mode)

Since: API Level 1

Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.

Parameters
name The name of the file to open; can not contain path separators.
mode Operating mode. Use 0 orMODE_PRIVATEfor the default operation,MODE_APPENDto append to an existing file,MODE_WORLD_READABLEandMODE_WORLD_WRITEABLEto control permissions.
Returns
  • FileOutputStream Resulting output stream.

如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream = this.getContext().openFileInput("user.txt");
Log.i("FileTest", readInStream(inStream));
readInStream()的方法请看本页下面备注。


或者直接使用文件的绝对路径:
File file = new File("/data/data/com.alex.datasave/files/user.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路径中的“com.alex.datasave”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限


更多相关文章

  1. Android Studio获取SHA1证书方法
  2. android log日志文件输出
  3. android按行读取文件内容的几个方法
  4. android获取bitmap的方法
  5. android 文件 修改权限
  6. android webview goback 跳过页面302自动跳转方法
  7. Android NestedScrollView 嵌套ViewPager不显示和出现空白部分
  8. android 打开不同文件工具类

随机推荐

  1. 国内加速访问Github的办法,超级简单
  2. 点进垃圾网页后返回按钮失效?谷歌承诺将彻
  3. 全国416个本科专业被撤销,你的专业“出局
  4. B站十门全领域基础实用课程推荐,PS设计司
  5. 宝可梦与Chrome联名,推出官方插件“皮卡丘
  6. 七十万权游粉丝请愿重拍第八季,这个请愿网
  7. C语言10.0
  8. JUC的世界II
  9. 安装Pinpoint实现全链接监控
  10. 这样规范写代码,同事直呼“666”