Загрузка-выгрузка файла в его актуальном формате - PullRequest
0 голосов
/ 18 мая 2010

Я должен сделать код для загрузки / выгрузки файла на удаленной машине.Но когда я загружаю файл, новая строка не сохраняется, а также автоматически вставляет некоторые двоичные символы.Также я не могу сохранить файл в его текущем формате, я должен сохранить его как «filename.ser».Я использую сериализацию-десериализацию концепции Java.

Заранее спасибо.

1 Ответ

1 голос
/ 18 мая 2010

Как именно вы передаете файлы? Если вы используете реализации InputStream и OutputStream , они работают на уровне байтов, поэтому вы должны получить двоично-равный вывод.

Если вы используете реализации Reader и Writer , они преобразуют байты в символы согласно некоторому сопоставлению символов, а затем выполняют обратный процесс при сохранении. В зависимости от кодировки платформы различных машин (и, возможно, других эффектов, если вы не указываете кодировку явно), вы можете в конечном итоге иметь различия в двоичном файле.

Тот факт, что вы упоминаете переводы строк, заставляет меня думать, что вы используете Readers для отправки строк (и, возможно, вы сами собираете строки обратно, вручную добавляя переводы строк). Если вы хотите, чтобы файлы были в двоичном формате равными, отправьте их как поток байтов и сохраните этот поток дословно. Если вы хотите, чтобы они были равны строкам в данном наборе символов, используйте Readers and Writers, но явно укажите набор символов. Если вы хотите, чтобы они передавались в виде строк в наборе платформы по умолчанию (не очень полезно), то примите, что они не будут двоичными, равными файлам.


(Кроме того, ваш вопрос на самом деле не дает много информации для его решения. Для меня он в основном гласит: «Я написал некоторый код для выполнения X, и он не работает. Где я ошибся?» Вы, кажется, предполагаете, что ваш код правильный, не перечисляя его, но в то же время понимаете, что это не так ...)

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