welcome: please sign in

ページのコンテンツをアップロード

下記のページ名のコンテンツをアップロードすることができます。 もしページ名を変更すれば、別のページのコンテンツをアップロードすることもできます。 ページ名が空の場合、ファイル名からページ名を決定します。

ページコンテンツを格納したファイル
ページ名
コメント

2009-11-20 12:50:04時点のリビジョン12

location: ファイル入力

ファイル入力

ファイル入出力のために、 つぎの4つをスーパークラスとする数十個のクラスが用意されています。

なおこの4つは抽象クラスのため、直接利用することはできません。


テキスト形式のファイルからの入力には Readerクラスのサブクラスである BufferedReader クラスを利用します。

BufferedReader クラスの readLineメソッドを使うことで1行ずつ読み取ることができます。

利用する機能は次の3つです。

ファイルを使い終わったときには、ファイルを閉じる処理が必要です。
ファイルの使い始めのopenは必要ありません。インスタンスを作ればよい。


readLineメソッドはファイルの終わりに達したときは null を返します。
ファイルを1行づつ読んで終わりまで処理するには、5行目を次のように修正します。

これと同じ内容を、次のように書くこともできます。


BufferedReaderインスタンスを作成するときには、 コンストラクタの引数としてFileReaderのインスタンスを与える必要があります。

FileReaderコンストラクタの引数にはファイル名を与えます。

インスタンスfはここでしか用いないので、次のように記述することもある。

ファイル名や1文字ごとの情報はFileReaderインスタンスの状態として保持され、 行単位の情報はBufferedReaderインスタンスの状態として保持されると考えればよい。

処理はBufferedReaderインスタンスへのメソッドを通して行います。


   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 }