Используя OutputStream, OutputStreamWriter и BufferedWriter взаимозаменяемо - PullRequest
0 голосов
/ 13 мая 2018

Я использую Java (Android), чтобы попытаться загрузить файл на веб-сервер, используя HttpURLConnection в соответствии с рекомендациями. В прошлом у меня были трудности с отправкой данных в виде запроса POST, но я успешно выполнил их через несколько часов. Эти данные были простыми данными в формате JSON, поэтому преобразование не представляло серьезной проблемы, и я использовал буферизованную запись для достижения цели.

Теперь я хотел бы загрузить реальные файлы, используя multipart / form-data, и ожидаю, что будет передано сочетание различных кодировок, двоичные из которых не поддерживаются как OutputStreamWriter (который принимает только строковые или char [] args), так и BufferedWriter (который допускает только аналогичные аргументы).

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

Мне потребуется использовать необработанный OutputStream для отправки байтов, но будет ли это конфликтовать со слоями OutputStreamWriter + BufferedWriter, когда придет время отправлять массивы символов?

Или, может быть, мне следует преобразовать текст UTF8 в двоичный файл, используя определенный метод, и отправить все это с помощью байтовых массивов?

Спасибо за предоставленную помощь

1 Ответ

0 голосов
/ 13 мая 2018

Я решил, что для небольшого общего количества байтов (несколько МБ), вероятно, будет проще использовать выходной поток и преобразовывать строки в байтовые массивы.

Хотя это более неэффективно с точки зрения памяти (хотелось бы использовать буферизованный ввод-вывод), это гораздо проще, и, хотя приложение остается простым, это путь на данный момент.

...