InputStreamReader class
An InputStreamReader is a bridge from byte streams to character streams.
InputStreamReader(InputStream in)
- Creates an InputStreamReader that uses the default charset.
InputStreamReader(InputStream in, Charset cs)
- Creates an InputStreamReader that uses the given charset.
InputStreamReader(InputStream in, CharsetDecoder dec)
- Creates an InputStreamReader that uses the given charset decoder.
InputStreamReader(InputStream in, String charsetName)
- Creates an InputStreamReader that uses the named charset.
void close()
- Closes the stream and releases any system resources associated with it.
String getEncoding()
- Returns the name of the character encoding being used by this stream.
int read()
- Reads a single character.
int read(char[] cbuf, int offset, int length)
- Reads characters into a portion of an array.
boolean ready()
- Tells whether this stream is ready to be read.
Revised from Open JDK source code
Create BufferedReader from InputStreamReader and URL
import java.io.InputStreamReader;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
URL myURL = new URL("http://www.google.com");
InputStreamReader so = new InputStreamReader(myURL.openStream());
while (true) {
int output = so.read();
if (output != -1) {
System.out.println((char)output);
} else {
break;
}
}
so.close();
}
}
Create InputStreamReader with encoding
import java.io.InputStreamReader;
import java.net.URL;
public class Main {
public static void main(String[] args) throws Exception {
URL myURL = new URL("http://www.google.com");
InputStreamReader so = new InputStreamReader(myURL.openStream(),"8859_1");
while (true) {
int output = so.read();
if (output != -1) {
System.out.println((char)output);
} else {
break;
}
}
so.close();
}
}