Подтвердить что ты не робот

BufferedInputStream Преобразование строк?

Возможный дубликат:
В Java как читать/преобразовывать InputStream в строку?

Привет, я хочу поместить этот BufferedInputStream в свою строку, как я могу это сделать?

BufferedInputStream in = new BufferedInputStream(sktClient.getInputStream() );
String a= in.read();
4b9b3361

Ответ 1

BufferedInputStream in = new BufferedInputStream(sktClient.getInputStream());
byte[] contents = new byte[1024];

int bytesRead = 0;
String strFileContents; 
while((bytesRead = in.read(contents)) != -1) { 
    strFileContents += new String(contents, 0, bytesRead);              
}

System.out.print(strFileContents);

Ответ 2

С Guava:

new String(ByteStreams.toByteArray(inputStream),Charsets.UTF_8);

С Commons/IO:

IOUtils.toString(inputStream, "UTF-8")

Ответ 3

Я предлагаю вам использовать apache commons IOUtils

String text = IOUtils.toString(sktClient.getInputStream());

Ответ 4

Пожалуйста, следуйте коду

Сообщите мне результаты

public String convertStreamToString(InputStream is)
                throws IOException {
            /*
             * To convert the InputStream to String we use the
             * Reader.read(char[] buffer) method. We iterate until the
    35.         * Reader return -1 which means there no more data to
    36.         * read. We use the StringWriter class to produce the string.
    37.         */
            if (is != null) {
                Writer writer = new StringWriter();

                char[] buffer = new char[1024];
                try
                {
                    Reader reader = new BufferedReader(
                            new InputStreamReader(is, "UTF-8"));
                    int n;
                    while ((n = reader.read(buffer)) != -1) 
                    {
                        writer.write(buffer, 0, n);
                    }
                }
                finally 
                {
                    is.close();
                }
                return writer.toString();
            } else {       
                return "";
            }
        }

Спасибо, Kariyachan

Ответ 5

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

Apache commons-io делает именно это.

Используйте IOUtils.toString(InputStream) или IOUtils.readLines(InputStream), если вы хотите более тонкое управление.