BufferedInputStream Преобразование строк?
Возможный дубликат:
В Java как читать/преобразовывать InputStream в строку?
Привет, я хочу поместить этот BufferedInputStream в свою строку, как я могу это сделать?
BufferedInputStream in = new BufferedInputStream(sktClient.getInputStream() );
String a= in.read();
Ответы
Ответ 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), если вы хотите более тонкое управление.
Ответ 6
Быстрый поиск Google для строки "java bufferedinputstream" вызывает множество примеров. Это нужно сделать трюк.