Сохранить InputStream в ByteArray - PullRequest
2 голосов
/ 22 июля 2011

Моя задача заключается в следующем: клиенты подключаются к ServerSocket и отправляют файлы в любой кодировке, какой они хотят (например, UTF-8, ISO-8859-5, CP1251).Когда сервер получает содержимое файла, скрипт должен вставить его в MySQL.

Поскольку кодировка может отличаться, мне нужно сохранить содержимое файла, например, ByteArray (?).

Byt Я не знаю, как получить ByteArrayот Socket.getInputStream ().

Пожалуйста, помогите с этим.

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

Ответы [ 2 ]

4 голосов
/ 22 июля 2011
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] tmp = new byte[4096];
int ret = 0;

while((ret = inputStream.read(tmp)) > 0)
{
    bos.write(tmp, 0, ret);
}

byte[] myArray = bos.toByteArray();
2 голосов
/ 22 июля 2011

Commons IO - http://commons.apache.org/io/

toByteArray(Reader input, String encoding) Получить содержимое Reader в виде байта [], используя указанную кодировку символов.

http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html

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