Сериализация — переопределения readObject writeObjectJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сериализация — переопределения readObject writeObject

Сообщение Anonymous »

Написав приведенный ниже код, теперь мне нужно использовать собственные методы readObject() и writeObject() в StudentData для чтения и записи переменных объекта без использования defaultWriteObject или defaultReadObject для этого.
Мне трудно понять, что меня просят сделать. Я прочитал «Использование readObject/writeObject в сериализации», но не могу разобраться в этом. Может ли кто-нибудь указать мне правильное направление?
Мой код:
import java.io.*; //importing input-output files

class Student implements java.io.Serializable {

String name; // declaration of variables
String DOB;
int id;

Student(String naam, int idno, String dob) // Initialising variables to user
// data
{
name = naam;
id = idno;
DOB = dob;
}

public String toString() {
return name + "\t" + id + "\t" + DOB + "\t";
}

}


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

class StudentData //main class
{
public static void main(String args[]) throws IOException //exception handling
{
System.out.println("Enter the numbers of students:");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(in.readLine());

Student[] students = new Student[n];

//Student[] S=new Student[n]; // array of objects declared and defined
for (int i = 0; i < students.length; i++) {
System.out.println("Enter the Details of Student no: " + (i + 1)); //reading data form the user
System.out.println("Name: ");
String naam = in.readLine();
System.out.println("ID no: ");
int idno = Integer.parseInt(in.readLine());
System.out.println("DOB: ");
String dob = (in.readLine());

students = new Student(naam, idno, dob);

File studentFile = new File("StudentData.txt");
try {
FileOutputStream fileOutput = new FileOutputStream(studentFile);
ObjectOutputStream objectOutput = new ObjectOutputStream(fileOutput);
objectOutput.writeObject(students);

students = null;

FileInputStream fileInput = new FileInputStream(studentFile);
ObjectInputStream objectInputStream = new ObjectInputStream(fileInput);

students = (Student[]) objectInputStream.readObject();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

for (Student student : students) {
System.out.println(student);
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/129 ... -overrides
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»