Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
2012-03-10 22:33
615 查看
对以下错误:
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
补充知识:
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
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权限
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 abstract FileOutputStream openFileOutput (String name,
int mode)
Since: API Level 1Open 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 or MODE_PRIVATEfor the default operation, MODE_APPENDto append to an existing file, MODE_WORLD_READABLEand MODE_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权限
相关文章推荐
- Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
- [zhuan]Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
- Android 异常处理:java.lang.IllegalArgumentException(...contains a path separator)
- Android酱油笔记之关于java.lang.IllegalArgumentException: contains a path separator的问题
- Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法
- Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法
- android 如何分析java.lang.IllegalArgumentException: Cannot draw recycled bitmaps异常
- android java.lang.IllegalArgumentException: The observer is null.异常解决【转】
- 使用Android提供的模拟任意地理位置,报java.lang.IllegalArgumentException: Incomplete location object异常的解决方法
- 异常:java.lang.IllegalArgumentException: Result Maps collection already contains ...
- 使用Android提供的模拟任意地理位置,报java.lang.IllegalArgumentException: Incomplete location object异常的解决方法
- Android 多点触控错误处理(java.lang.IllegalArgumentException: pointerIndex out of range)
- android java.lang.IllegalArgumentException: The observer is null.异常解决
- hive异常 java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7
- kafka消息无法正常消费,且报异常:java.lang.IllegalArgumentException: Path must not end with / character
- Android异常总结---E/AndroidRuntime(23439): Caused by: java.lang.IllegalArgumentException: column '_id' d
- Android学习----异常(3)---java.lang.IllegalArgumentException: column '_id' does not exist
- Android异常总结---E/AndroidRuntime(23439): Caused by: java.lang.IllegalArgumentException: column '_id' d
- java.lang.IllegalArgumentException异常处理
- android java.lang.IllegalArgumentException: The observer is null 异常解决