I am trying to write a file using FileOutputStream and OutputStreamWriter , but I keep getting a read-only warning.
Here is the code I'm using
FileOutputStream fw = new FileOutputStream((trackName.replaceAll(" ", ""))+".gpx", true); OutputStreamWriter osw = new OutputStreamWriter(fw); osw.write(XML_HEADER+"\n"); osw.write(TAG_GPX+"\n"); writeTrackPoints(trackName, osw, locations, time, trackDescp); writeWayPoints(osw, locations,time); osw.flush(); osw.close();
And Logcat output
java.io.FileNotFoundException: /test.gpx (Read-only file system) at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method) at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152) at java.io.FileOutputStream.<init>(FileOutputStream.java:97) at java.io.FileOutputStream.<init>(FileOutputStream.java:168) at java.io.FileOutputStream.<init>(FileOutputStream.java:147) at com.fyp.run_race.GPXFileWriter.<init>(GPXFileWriter.java:25) at com.fyp.run_race.GPSTrackDetails$1.onClick(GPSTrackDetails.java:58) at android.view.View.performClick(View.java:2408) at android.view.View$PerformClick.run(View.java:8816) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:4627) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:521) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) at dalvik.system.NativeStart.main(Native Method)
I am sure the problem really is.
source share