Мне нужно преобразовать содержимое InputStream в строку. Сложность здесь заключается во входной кодировке, а именно в латинице -1. Я попробовал несколько подходов и фрагментов кода со String, getBytes, char[] и т. д., чтобы получить прямую кодировку, но ничего не сработало.
Наконец, я придумал рабочее решение ниже. Однако мне этот код кажется немного многословным даже для Java. Итак, вопрос здесь:
Есть ли более простой и элегантный подход для достижения того, что здесь делается?
private String convertStreamToStringLatin1(java.io.InputStream is)
throws IOException {
String text = "";
// setup readers with Latin-1 (ISO 8859-1) encoding
BufferedReader i = new BufferedReader(new InputStreamReader(is, "8859_1"));
int numBytes;
CharBuffer buf = CharBuffer.allocate(512);
while ((numBytes = i.read(buf)) != -1) {
text += String.copyValueOf(buf.array(), 0, numBytes);
buf.clear();
}
return text;
}