UTF-8 byte[] to String
Look at the constructor for String
String str = new String(bytes, StandardCharsets.UTF_8);
And if you're feeling lazy, you can use the Apache Commons IO library to convert the InputStream to a String directly:
String str = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
To convert utf-8 data, you can't assume a 1-1 correspondence between bytes and characters.Try this:
String file_string = new String(bytes, "UTF-8");
(Bah. I see I'm way to slow in hitting the Post Your Answer button.)
To read an entire file as a String, do something like this:
public String openFileToString(String fileName) throws IOException{ InputStream is = new BufferedInputStream(new FileInputStream(fileName)); try { InputStreamReader rdr = new InputStreamReader(is, "UTF-8"); StringBuilder contents = new StringBuilder(); char[] buff = new char[4096]; int len = rdr.read(buff); while (len >= 0) { contents.append(buff, 0, len); } return buff.toString(); } finally { try { is.close(); } catch (Exception e) { // log error in closing the file } }}