Java File class, сериализованный и отправленный по сети, не содержит всей информации о файле

#java #file

#java #файл

Вопрос:

Я хочу отправить java.io.File объект через сеть, используя сериализацию. Когда я сериализую какой File -либо объект, отправляю его и десериализую на другой стороне, он не содержит всей информации о файле. Например, я могу получить путь, по которому находился файл (на стороне сервера, где я его сериализовал), но я не могу получить размер файла, дату изменения файла, каталог файла или нет и некоторые другие значения. В чем может быть проблема? Есть ли какой-либо способ загрузить всю эту информацию перед сериализацией File объекта? Я пытаюсь сделать это, не создавая свой пользовательский класс для представления файлов.

Ответ №1:

Вся сериализация — это передача нестационарных (не статических) полей экземпляра объекта. Если вы посмотрите на File класс, он включает в path себя — и ничего больше.

Атрибуты файла сверяются с фактической файловой системой при вызове метода like lastModified() . Это хорошо, потому что вы хотите знать, каковы эти атрибуты сейчас, а не в тот момент, когда вы создали File объект.

Создайте свой собственный класс как снимок состояния файла.