I'm trying to read from a text/plain
file over the internet, line-by-line. The code I have right now is:
URL url = new URL("http://kuehldesign.net/test.txt"); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); LinkedList<String> lines = new LinkedList(); String readLine; while ((readLine = in.readLine()) != null) { lines.add(readLine); } for (String line : lines) { out.println("> " + line); }
The file, test.txt
, contains ¡Hélló!
, which I am using in order to test the encoding.
When I review the OutputStream
(out
), I see it as > ¡Hélló!
. I don't believe this is a problem with the OutputStream
since I can do out.println("é");
without problems.
Any ideas for reading form the InputStream
as UTF-8? Thanks!
Solved my own problem. This line:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
needs to be:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
or since Java 7:
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), StandardCharsets.UTF_8));
String file = ""; try { InputStream is = new FileInputStream(filename); String UTF8 = "utf8"; int BUFFER_SIZE = 8192; BufferedReader br = new BufferedReader(new InputStreamReader(is, UTF8), BUFFER_SIZE); String str; while ((str = br.readLine()) != null) { file += str; } } catch (Exception e) { }
Try this,.. :-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With