Stream: データの流れを表すクラス
Reader: Streamのデータを読むクラス
BufferedReader r = new BufferedReader( new InputStreamReader( new FileInputStream(filename), encoding));
Streamのencoding(文字コード)に対応できる Reader
読み込む先である InputStream と、encoding(日本語なら漢字コード)を指定
日本語では、"EUC_JP", "SJIS", "ISO2022JP"など。 入力では、"JISAutoDetect"と指定すると自動判別になる。
半角カナを含む SJIS と EUC_JP との自動判別は厳密には不可能
InputStream iStream = new FileInputStream("foo.txt"); InputStreamReader r = new InputStreamReader(iStream, "EUC_JP");
InputStreamReader r = new InputStreamReader( new FileInputStream("foo.txt"), "EUC_JP"));
URL url = URL("http://java.sun.com/"); URLConnection urlConnection = url.openConnection(); urlConnection.connect(); InputStreamReader r = new InputStreamReader( urlConnection.getInputStream(), "JISAutoDetect");
バッファリングをする Reader
データを読む際には、ある程度の大きさのデータをまとめて読み込んでメモリに蓄えてしまい、プログラムには要求しただけの量を読んだように見せることによって、速度を上げる技術
コンストラクタ BufferedReader(InputStreamReader isr)