es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Serializando objetos personalizados en Java – java.io.FileNotFoundException

Tengo un método que me está requiriendo serializar objetos de una clase personalizada ‘Fracción’. Cuando intento guardar el objeto, obtengo una java.io.FileNotFoundException. ¿Qué puedo hacer para ayudar a resolver el problema?

“`java
public static void method3()
{
// Serializa la clase Fracción. Guarda todos los objetos en un archivo llamado
// '<tu nombre="">Fracciones.dat'
// Reemplaza '<tu nombre="">' con tu nombre en el nombre del archivo.
// Asegúrate de cerrar() el archivo después de escribir los datos.

<pre><code>Fraction[] fa =
{
new Fraction(35, 18), new Fraction(125, -30), new Fraction(-125, -30),
new Fraction(0, 76), new Fraction(98, 12)
};

ArrayList<fraction> alf = new ArrayList<fraction>();
alf.add(new Fraction(81, 9));
alf.add(new Fraction(-75, 250));
alf.add(new Fraction(2380, 754));

// guarda todos los objetos en el archivo aquí

String fileName = "<tu nombre="">Fracciones.dat";

try {
ObjectOutputStream serializer = new ObjectOutputStream(new FileOutputStream(fileName));
serializer.writeObject(fa);
serializer.writeObject(alf);
serializer.close();
} catch(FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
System.out.println("Se produjo un problema al serializar.");
e.printStackTrace();
}
</code></pre>

}

// Me aseguré de que la clase Fracción implementara Serializable como se muestra a continuación

import java.io.Serializable;

public class Fraction implements Comparable<fraction>, Serializable
{
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Si te encuentras con una java.io.FileNotFoundException al intentar serializar objetos de una clase personalizada, hay algunas cosas que puedes hacer para ayudar a resolver el problema:

    1. Verifica la ruta del archivo: Asegúrate de que la ruta del archivo que estás utilizando sea correcta y que el archivo esté guardado en la ubicación esperada. Puedes intentar usar una ruta de archivo absoluta o una ruta de archivo relativa para ver si eso marca alguna diferencia.
    2. Asegúrate de tener permisos de escritura: Verifica que tengas los permisos necesarios para escribir en el directorio donde se guarda el archivo.

    3. Cierra el archivo después de escribir: Es crucial cerrar el ObjectOutputStream después de escribir los datos en el archivo. Este paso garantiza que todos los datos se escriban en el archivo y que el archivo se guarde correctamente.

    En el código proporcionado, el nombre del archivo se da como “Fractions.dat”, así que asegúrate de reemplazar “” con tu nombre real antes de ejecutar el código. Además, el código proporcionado ya implementa Serializable para la clase Fraction, por lo que no deberías necesitar modificar esa parte.

Comments are closed.