我已經創建了一個文件,我想將其打開。在用一些常見的開始文本創建文件後,我調用方法writeValuestoFile(String fname),其中fname是文件名。在這個方法中,我想打開我已經通過另一種方法創建的文件並且只是更新它。但是,我是InvalidArgumentException。我懷疑我的道路是否正確。投入將受到高度讚賞。這是我的方法調用。如何打開已在Android Phone SD卡中創建的文件
public void writeValuestoFile(String fname) {
String rec_x_string = Float.valueOf((x_updated)).toString();
String rec_y_string = Float.valueOf((y_updated)).toString();
String rec_z_string = Float.valueOf((z_updated)).toString();
try {
FileOutputStream fout = openFileOutput("sdcard/Accelorometer Readings/"+file_name, Context.MODE_APPEND);
OutputStreamWriter write = new OutputStreamWriter(fout);
String newline = System.getProperty("line.seperator");
try {
write.append(newline);
write.append(newline);
write.write(rec_x_string + " " + rec_y_string + " " + rec_z_string);
write.flush();
write.close();
fout.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return;
}
這是我異常的logcat:
02-08 05:57:49.869: E/AndroidRuntime(24818): FATAL EXCEPTION: main
02-08 05:57:49.869: E/AndroidRuntime(24818): java.lang.IllegalArgumentException: File sdcard/Accelorometer Readings/null contains a path separator
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.app.ContextImpl.makeFilename(ContextImpl.java:1674)
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.app.ContextImpl.openFileOutput(ContextImpl.java:420)
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.content.ContextWrapper.openFileOutput(ContextWrapper.java:158)
02-08 05:57:49.869: E/AndroidRuntime(24818): at com.example.hw02_devarajan_q1.MainActivity.writeValuestoFile(MainActivity.java:241)
02-08 05:57:49.869: E/AndroidRuntime(24818): at com.example.hw02_devarajan_q1.MainActivity$2.run(MainActivity.java:91)
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.os.Handler.handleCallback(Handler.java:587)
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.os.Handler.dispatchMessage(Handler.java:92)
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.os.Looper.loop(Looper.java:130)
02-08 05:57:49.869: E/AndroidRuntime(24818): at android.app.ActivityThread.main(ActivityThread.java:3687)
02-08 05:57:49.869: E/AndroidRuntime(24818): at java.lang.reflect.Method.invokeNative(Native Method)
02-08 05:57:49.869: E/AndroidRuntime(24818): at java.lang.reflect.Method.invoke(Method.java:507)
02-08 05:57:49.869: E/AndroidRuntime(24818): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
02-08 05:57:49.869: E/AndroidRuntime(24818): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
02-08 05:57:49.869: E/AndroidRuntime(24818): at dalvik.system.NativeStart.main(Native Method)
LogCat說什麼? – MarsAtomic 2015-02-08 00:20:32
另外,openFileOutput是調用更新文件的函數嗎? – 2015-02-08 00:26:39
[java.lang.IllegalArgumentException:包含路徑分隔符]的可能重複(http://stackoverflow.com/questions/5963535/java-lang-illegalargumentexception-contains-a-path-separator) – immibis 2015-02-08 00:39:46