#java #file
#java #файл
Вопрос:
Я хочу отправить java.io.File
объект через сеть, используя сериализацию. Когда я сериализую какой File
-либо объект, отправляю его и десериализую на другой стороне, он не содержит всей информации о файле. Например, я могу получить путь, по которому находился файл (на стороне сервера, где я его сериализовал), но я не могу получить размер файла, дату изменения файла, каталог файла или нет и некоторые другие значения. В чем может быть проблема? Есть ли какой-либо способ загрузить всю эту информацию перед сериализацией File
объекта? Я пытаюсь сделать это, не создавая свой пользовательский класс для представления файлов.
Ответ №1:
Вся сериализация — это передача нестационарных (не статических) полей экземпляра объекта. Если вы посмотрите на File
класс, он включает в path
себя — и ничего больше.
Атрибуты файла сверяются с фактической файловой системой при вызове метода like lastModified()
. Это хорошо, потому что вы хотите знать, каковы эти атрибуты сейчас, а не в тот момент, когда вы создали File
объект.
Создайте свой собственный класс как снимок состояния файла.