Error creating file using createNewFile

0

I'm doing a program that needs to create a file that stores an array to load it later, the problem is that when I create it I get the following error:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.victor.miscompaneros, PID: 13282
java.lang.IllegalStateException: Could not execute method for android:onClick
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390)
    at android.view.View.performClick(View.java:6597)
    at android.view.View.performClickInternal(View.java:6574)
    at android.view.View.access$3100(View.java:778)
    at android.view.View$PerformClick.run(View.java:25885)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385)
    at android.view.View.performClick(View.java:6597) 
    at android.view.View.performClickInternal(View.java:6574) 
    at android.view.View.access$3100(View.java:778) 
    at android.view.View$PerformClick.run(View.java:25885) 
    at android.os.Handler.handleCallback(Handler.java:873) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
 Caused by: java.io.IOException: Read-only file system
    at java.io.UnixFileSystem.createFileExclusively0(Native Method)
    at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:281)
    at java.io.File.createNewFile(File.java:1008)
    at com.example.victor.miscompaneros.menucontactos.leerFichContactos(menucontactos.java:84)
    at com.example.victor.miscompaneros.menucontactos.metodo_anadir(menucontactos.java:58)
    at java.lang.reflect.Method.invoke(Native Method) 
    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:385) 
    at android.view.View.performClick(View.java:6597) 
    at android.view.View.performClickInternal(View.java:6574) 
    at android.view.View.access$3100(View.java:778) 
    at android.view.View$PerformClick.run(View.java:25885) 
    at android.os.Handler.handleCallback(Handler.java:873) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

I think the error comes from this line:

Caused by: java.io.IOException: Read-only file system

And this is the code

public class menucontactos extends AppCompatActivity implements Serializable {

@TargetApi(Build.VERSION_CODES.KITKAT)
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menucontactos);


}

public void metodo_volver(View view) {
    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(intent);
    finish();

}

public void metodo_editar(View view) {

    Intent intent = new Intent(getApplicationContext(), editarcontacto.class);
    intent.putExtra("DATO", 2);
    startActivity(intent);
    finish();

}

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void metodo_anadir(View view) throws IOException, ClassNotFoundException {


    leerFichContactos();
    Intent intent = new Intent(getApplicationContext(), editarcontacto.class);
    intent.putExtra("DATO", 1);
    startActivity(intent);
    finish();


}

public void metodo_borrar(View view) {


}

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
static void leerFichContactos() throws IOException, ClassNotFoundException {

    if (fichContactos.exists()) {

        FileInputStream fis = new FileInputStream("contactos.txt");
        ObjectInputStream ois = new ObjectInputStream(fis);
        ArrayList<Contacto> contactos = (ArrayList<Contacto>) ois.readObject();
        ois.close();
    } else {
        fichContactos.createNewFile();


    }

}

@RequiresApi(api = Build.VERSION_CODES.KITKAT)
static void escribirDatosContactos() throws IOException {

    FileOutputStream fos = new FileOutputStream("contactos.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(contactos);
    oos.close();
}

}

    
asked by victor96 16.11.2018 в 19:04
source

0 answers