#java #serialization #filenotfoundexception #objectoutputstream #custom-object
#Ява #сериализация #исключение filenotfoundexception #поток вывода объекта #пользовательский объект
Вопрос:
У меня есть метод, который требует, чтобы я сериализовал объекты пользовательского класса «Фракция». Когда я пытаюсь сохранить объект, я получаю исключение java.io.FileNotFoundException. Что я мог бы сделать, чтобы помочь решить эту проблему?
public static void method3() { //Serialize the Fraction class. Save all the objects to a file named // lt;your namegt;Fractions.dat //replace lt;your namegt; with your name in the file name! //Be sure to close() the file after writing the data. Fraction[] fa = { new Fraction(35, 18), new Fraction(125, -30), new Fraction(-125, -30), new Fraction(0, 76), new Fraction(98, 12) }; ArrayListlt;Fractiongt; alf = new ArrayListlt;Fractiongt;(); alf.add(new Fraction(81, 9)); alf.add(new Fraction(-75, 250)); alf.add(new Fraction(2380, 754)); //save all objects to the file here String fileName = "lt;your namegt;Fractions.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("A problem occurred when serializing."); e.printStackTrace(); } } //I made sure to have the Fraction class implement Serializable as demonstrated below import java.io.Serializable; public class Fraction implements Comparablelt;Fractiongt;, Serializable {
Комментарии:
1. Вам не
"lt;your namegt;Fractions.dat"
кажется, что это допустимое имя файла?2. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.
Ответ №1:
Вы используете недопустимое имя файла:
String fileName = "lt;your namegt;Fractions.dat";
это недопустимое имя практически в любой операционной системе. Совершенно очевидно, что вы должны заменить lt;your namegt;
.