Android – Sólo lectura del sistema de archivos IOException

Estoy tratando de escribir en un archivo de texto simple en el sistema Android. Este es mi código:

public void writeClassName() throws IOException{ String FILENAME = "classNames"; EditText editText = (EditText) findViewById(R.id.className); String className = editText.getText().toString(); File logFile = new File("classNames.txt"); if (!logFile.exists()) { try { logFile.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { //BufferedWriter for performance, true to set append to file flag BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); buf.append(className); buf.newLine(); buf.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Sin embargo, este código produce un error "java.io.IOException: open failed: EROFS (sistema de archivos de sólo lectura)". He intentado agregar permisos a mi archivo del manifiesto como sigue sin éxito:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="hellolistview.com" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".ClassView" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".AddNewClassView" /> </application> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Alguien tiene alguna idea de cuál es el problema?

Debido a que está intentando escribir el archivo a raíz, debe pasar la ruta del archivo a su directorio de archivos.

Ejemplo

 String filePath = context.getFilesDir().getPath().toString() + "/fileName.txt"; File f = new File(filePath); 

Intente utilizar el enfoque de este artículo en la guía para desarrolladores:

 String FILENAME = "hello_file"; String string = "hello world!"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close(); 
  • Android / Java: detecta si el dispositivo tiene una cámara BACK
  • Cómo probar InputMethodService
  • Cambiar el tamaño de EditText (cualquier vista) mostrado en alertBox?
  • Cómo agregar el recyclerview al proyecto
  • Saltar una pantalla de bienvenida
  • Historia del grupo de canales de Pubnub
  • Quitar elementos de HashMap por clave en java
  • Body.setTransform no funciona dentro del oyente de contacto (andEngine y box2d)
  • Android cómo usar location.distanceTo ()
  • Decodificación de cadena utf-8
  • Cómo obtener el desplazamiento de desplazamiento en MPAndroidChart?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.