Java сохранение / открытие объектов File - PullRequest
8 голосов
/ 22 ноября 2011

После кропотливой попытки реализовать передачу файлов TCP в моем приложении для конференц-чата с использованием необработанных потоков байтов я решил, что гораздо проще отправлять файлы, которые я хочу, передавать через потоки объектов. Файлы отправляются и сохраняются в месте назначения (будь то центральный сервер или загружающий клиент) как объекты File в памяти. Однако эти файлы бесполезны как просто объекты File - клиенты должны иметь возможность открывать их. В java есть способ сохранить объекты File в виде файлов на жестком диске или даже открыть их через Java?

Ответы [ 3 ]

10 голосов
/ 23 ноября 2011

Что вы подразумеваете под «Файловые объекты»;Вы имеете в виду java.io.File?

Класс java.io.File - это просто представление имени каталога и имени файла.Это не объект, который может содержать содержимое файла.

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

byte[] data = ...;

OutputStream out = new FileOutputStream(new File("C:\\someplace\\filename.dat"));
out.write(data);
out.close();

См. Базовый урок ввода-вывода из Oracle Tutorials, чтобы узнать, как читать и записывать файлы с FileInputStream и FileOutputStream.

1 голос
/ 23 ноября 2011

Вы должны посмотреть на Обработчики данных

Вы можете использовать их для передачи файлов как Data Sources, но "прозрачным" способом для вас.

0 голосов
/ 23 ноября 2011

Я решил, что гораздо проще отправлять файлы, которые я хочу передать через потоки объектов. "

Это не так. Плохая идея: стоит памяти и задержки (т.е. время ипробел). Просто отправьте и получите байты, а перед ними будет указано, что такое имя файла и размер файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...