Сериализация новых строк текстового файла отсутствует - PullRequest
1 голос
/ 24 октября 2011

Я пытаюсь поместить локальный файл на удаленный хост через XML-RPC Base64 кодирование / декодирование.Это прекрасно работает для двоичных файлов, но когда я пытаюсь отправить текстовый файл, все окончания строк удаляются.Почему это происходит?

На стороне клиента:

my $buf;
my $encoded = '';
while (read($FILE, $buf, 60 * 57)) {
   $encoded .= encode_base64($buf);
}

На который он затем отправляет мой XML-RPC-сервер Redstone, который принимает его и записывает:

// Create file
   File file = new File(path);
   file.createNewFile();

// Decode the encoded data sent over into bytes
   byte[] bytes = Base64.decode(data.getBytes());

// Write them out to the file
    FileOutputStream os = new FileOutputStream(file);
    os.write(bytes);
    os.flush();
    os.close();

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Проблема заключалась в том, что я открывал в Блокноте, который не распознавал окончания CRLF.

0 голосов
/ 24 октября 2011

Попробуйте установить $ FILE в двоичном режиме, который вы должны указать после команды открытия:

open my $FILE, '<', 'the_file_name.extension';
binmode $FILE;

# your code ...
...