サイズ: 1723
コメント:
|
サイズ: 2334
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 3: | 行 3: |
ファイル入出力のために、 | |
行 8: | 行 9: |
この4つは抽象クラスのため、直接利用することはできません。 | なおこの4つは抽象クラスのため、直接利用することはできません。 |
行 14: | 行 15: |
このように使います。 | 利用する機能は次の3つです。 |
行 28: | 行 29: |
---- readLineメソッドはファイルの終わりに達したときは null を返します。 ファイルを1行づつ読んで終わりまで処理するには、この条件を使って記述します。 {{{ while( true ) { s = b.readLine(); if(s == null) break; // 各行での必要な処理はここに書く } }}} これと同じ内容を、次のように書くこともできます。 {{{ while( (s = b.readLine() ) != null) { // 各行での必要な処理はここに書く } }}} |
|
行 29: | 行 49: |
---- |
ファイル入力
ファイル入出力のために、 つぎの4つをスーパークラスとする数十個のクラスが用意されています。
InputStream バイト入力
OutputStream バイト出力
- Reader テキスト入力
- Writer テキスト出力
なおこの4つは抽象クラスのため、直接利用することはできません。
テキスト形式のファイルからの入力には Readerクラスのサブクラスである BufferedReader クラスを利用します。
BufferedReader クラスの readLineメソッドを使うことで1行ずつ読み取ることができます。
利用する機能は次の3つです。
4行目で、BufferedReaderクラスのインスタンスを作ります。
- 5行目で、このインスタンスを使ってreadLineメソッドを使って1行分読み取り、結果を文字列sに代入しています。
- 6行目で、ファイルを閉じています。
ファイルを使い終わったときには、ファイルを閉じる処理が必要です。
ファイルの使い始めのopenは必要ありません。インスタンスを作ればよい。
readLineメソッドはファイルの終わりに達したときは null を返します。 ファイルを1行づつ読んで終わりまで処理するには、この条件を使って記述します。
while( true ) { s = b.readLine(); if(s == null) break; // 各行での必要な処理はここに書く }
これと同じ内容を、次のように書くこともできます。
while( (s = b.readLine() ) != null) { // 各行での必要な処理はここに書く }
1 public class ReadSample
2 {
3 public static void main(String[] args)
4 {
5 try
6 {
7 java.io.FileReader f;
8 java.io.BufferedReader b;
9 String s;
10
11 f = new java.io.FileReader( args[0] );
12 b = new java.io.BufferedReader( f );
13
14 while( (s = b.readLine()) != null)
15 {
16 System.out.println( s );
17 }
18
19 b.close();
20 } catch(Exception e) {
21 System.out.println( e );
22 }
23 }
24 }