Сериализация/Десериализация объекта в java

151
01 декабря 2017, 05:12

Сериализирую объект в файл на Android таким образом:

FileOutputStream fos = getApplicationContext().openFileOutput("order.dat", Context.MODE_PRIVATE);
ObjectOutputStream oos = new ObjectOutputStream(fos);
order = new Order(serverPass, purchase.getText().toString(), new Date(), name.getText().toString(), logInEmail, null, null, null, listSelectNom, null, listSelectIt);
 oos.writeObject(order);
oos.flush();
oos.close();
fos.close();
final File file = new File(getFilesDir(), "order.dat");

Далее передаю файл - file через сокет на ПК. ПК в свою очередь принимает и десериализирует файл обратно в объект:

File file = new File("order.dat");
FileOutputStream fOutput = new FileOutputStream(file);
BufferedInputStream bufferInput = new BufferedInputStream(clientSocket.getInputStream());
int fileSize = bufferInput.read(buffer);
fOutput.write(buffer, 0, fileSize);
FileInputStream fileInput = new FileInputStream(file);
ObjectInputStream objectInput = new ObjectInputStream(fileInput);
order = (Order) objectInput.readObject();

При этом файл десериализируется неправильно. Если файл десереализирую в Android то всё проходит успешно:

Order order1;
FileInputStream fis = new FileInputStream(file);
ObjectInputStream is = new ObjectInputStream(fis);
order1= (Order) is.readObject();
is.close();

Что я делаю неправильно? Файл принимается нормально, ошибок при отправке и приеме не выдаёт. Как сделать правильную десереализацию в приложении на ПК?

Answer 1

Вомзожно проблема в Context.MODE_PRIVATE

int MODE_PRIVATE File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID).

Файл созданный с такой меткой может быть открыт только тем же приложением или другим приложение с таким же ID

READ ALSO
Может ли завейтится все приложения если я использую один монитор?

Может ли завейтится все приложения если я использую один монитор?

У меня есть два потока в одном потоке, который запустился сразу имеется такой код

180
Какие Этапы создания email рассылки?

Какие Этапы создания email рассылки?

Верстаю письма на фреймворке Foundation for emailsНо после верстки идут этапы тестирования и отправки

172
Netbeans форматирование кода PHP + HTML

Netbeans форматирование кода PHP + HTML

в Netbeans есть замечательная возможность форматирования кода, команда находится здесь: Источник -> Формат (ALT+SHIFT+F)

264