Как реализовать преобразование двоичного файла в ascii? (и наоборот)

#java #ascii #binaryfiles #binary-data

#java #ascii #двоичные файлы #двоичный файл-данные

Вопрос:

Я хочу написать две простые утилиты:

  1. Получает двоичный файл и преобразует его в текстовый файл (формат ASCII).
  2. Получает текстовый файл в формате вышеупомянутого файла и восстанавливает исходный двоичный файл.

Причина, по которой мне это нужно, — это очень глупая, но все же причина. У меня есть два компьютера — один с доступом в Интернет, а другой без. Я пишу программное обеспечение на том, у которого нет Интернета. Я получаю электронные письма на 2-м из них. Мне нужно перенести двоичные файлы из одного в другой (например, jars), но единственная связь между ними — это буфер обмена (только текст).

Возможно, это очень локальная проблема, но я предполагаю, что у нее есть какое-то решение в мире шифрования / сжатия данных / передачи по сети.

Единственное, что я мог придумать, это просмотреть двоичный файл и преобразовать каждый байт в его шестнадцатеричное представление — так что для каждого байта я получу два символа ASCII (т. Е. два байта). Есть ли что-нибудь лучше? (Это решение удваивает объем информации и может оказаться невозможным передать ее через буфер обмена)

Одно ограничение — мне это нужно как решение на основе Java (я хочу написать его сам)

Комментарии:

1. И за какие грехи Ведьма вот так искалечила вашу настройку? o_O

2. Политика всей компании — я просто выполняю свой долг как сотрудника, чтобы найти запасной выход…

3. Как работает этот буфер обмена? Если это происходит по какой-то сети, возможно, было бы лучше, если бы вы перехватили это соединение.

4. Как именно они связаны с тем, что один компьютер без Интернета может получить доступ к буферу обмена другого компьютера. Я никогда не видел, чтобы это делалось раньше. У вас нет другого способа передачи файлов, что делают все остальные?

5. Кроме того, я рекомендую флэш-накопитель.

Ответ №1:

Найдите Base64 в Google и используйте кодек Apache commons, чтобы получить готовую к использованию реализацию.

Комментарии:

1. Не могли бы вы, пожалуйста, добавить еще несколько деталей? Что означает «Google для Base64»?

2. Вы хотите прочитать двоичный файл и закодировать его в base64. Это кодирует все содержимое файла base64 в виде текста (объемом 64 разных символа). Это можно скопировать. С другой стороны, base64 декодирует его обратно в двоичный файл.

3. @Ronk: В Google : действие по использованию веб-браузера и использованию Google для поиска чего-либо. Base64 — это способ кодирования двоичных данных в ASCII. для кодирования 3 байт двоичных данных требуется 4 символа, что более эффективно, чем шестнадцатеричное кодирование. Кодек Apache commons имеет реализацию этого алгоритма кодирования / декодирования.