使用此代码编写文件:
public void writeFile(String data){
try { // catches IOException below
final String TESTSTRING = new String(data+"-");
String path=Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/test.txt";
FileOutputStream fOut = openFileOutput(path,
MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
// Write the string to the file
osw.write(TESTSTRING);
/* ensure that everything is
* really written out and close */
osw.flush();
osw.close();
}catch (Exception e) {
e.printStackTrace();
}
}
以上代码生成的错误:
java.lang.IllegalArgumentException: File /sdcard/test.txt contains a path separator
我找不到这段代码的错误。
答案 0 :(得分:2)
此链接可能对您有所帮助。
Android write to sd card folder
您必须在文件名之前删除'/'。 openFileOuput()获取要打开的文件的名称;它不能包含路径分隔符。
另外,您是否已获得在清单文件中写入外部存储的权限?
答案 1 :(得分:1)
openFileOutput
用于为应用程序创建私有文件,这些文件将保存在应用程序的私有目录中。这意味着您需要向方法发送文件名而不是整个路径。
并确保您在AndroidManifest.xml
中拥有WRITE_EXTERNAL_STORAGE权限。
答案 2 :(得分:0)
openFileOuput()不接受路径,只接受文件名。