Я пытаюсь сохранить данные JAVA-программы в файле .db, но не работает. появляется следующее сообщение об ошибке сообщение:Сохранение данных в формате .db - java.io.File
"java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source) at java.io.ObjectInputStream.readStreamHeader(Unknown Source) at java.io.ObjectInputStream.<init>(Unknown Source) at server.server.main(server.java:27) Running
"
Моя программа представляет собой модель клиент-сервер работает с Java RMI. У меня есть 2 клиента, 2 интерфейса, а затем несколько классов, включая класс сервера и класс реализации со всеми методами.
Метод «сохранить» в классе реализации следующим образом:
public void save() {
ObjectOutputStream out;
try {
out = new ObjectOutputStream(new FileOutputStream(new java.io.File("C:/Users/Myself/Desktop/Hospital.db")));
out.writeObject(this);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
В классе сервера:
try {
ObjectInputStream in;
try {
in = new ObjectInputStream(new FileInputStream(new java.io.File("C:/Users/Myself/Desktop/Hospital.db")));
read = (implementation)in.readObject();
in.close();
System.out.println(read);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
read = new implementation();
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
read = new implementation();
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
read = new implementation();
e.printStackTrace();
}
«Сохранить» метод затем используется в обоих клиентов.
Насколько я вижу, вы _reading_ из файла, а не _writing_ – AlexR
Я думаю, прежде чем клиент завершит запись файла, сервер может попытаться прочитать файл. –