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:
- Realm java sort con varios campos
- 1000 * 60 * 60 * 24 * 30 resultados en un número negativo
- Configuración de RelativeLayout en código java
- ¿Qué es exactamente un widget?
- Error al seleccionar texto de Textview (java.lang.IndexOutOfBoundsException: setSpan (-1 ... -1) comienza antes de 0)
<?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?
- NullPointerException al llamar a getSupportActionBar () desde dentro de Fragment (ActionBarCompat)
- ¿Cómo usar SQLiteOpenHelper sin el uso menos restrictivo de Contexto?
- No se puede comprobar el botón de radio
- Cómo actualizar la vista de la vista de fila de elementos anteriores de la vista de reciclaje
- ¿Tiene un cursor en las columnas de referencia de Android de 0 o 1?
- Método de cifrado para iPhone y Android
- Android: Instalación de Wikitude en el emulador de Android
- Android ImageAdapter con Gridview en el fragmento
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();
- Utilizar AsyncTask para iniciar la actividad
- ObjectAnimator onAnimationEnd se escucha antes de que termine la animación