猛復習!JavaのI/Oストリーム

 最近リファレンスを読み直して再復習です。

テキストファイルI/Oのサンプル

import java.io.*;
public String readFile(String inFileName){
  try {
    BufferedReader reader = new BufferedReader(
      new InputStreamReader(new FileInputStream(inFileName), "EucJP") );
    BufferedWriter writer = new BufferedWriter(
      new OutputStreamWriter(new FileOutputStream(outFileName), "EucJP") );
    while(true){
      String buf = reader.readLine();
      if(buf == null) break;
      writer.write(buf); writer.newLine(); /* ←改行する */
    }
    reader.close();
    writer.close();
  } catch(IOException ex){
    out.println("おおっと:" + ex.toString());
    ex.printStackTrace();
    return 2;
  }
}

URLからのテキスト入力のサンプル

import java.io.*;
import java.net.*;

String readURL(){
  String urlstr = "http://www.abc.def.co.jp/";
  URL url;
  try {
    url = new URL(urlstr);
  } catch(MalformedURLException ex){
    out.println("おおっと:" + ex.toString());
    ex.printStackTrace();
    return 1;
  }

  try {
    BufferedReader reader = new BufferedReader(
      new InputStreamReader(url.openStream(), "EucJP") );
    while(true){
      String buf = reader.readLine();
      if(buf == null) break;
      /* buf を使って何か処理をします */
    }
    reader.close();
  } catch(IOException ex){
    out.println("おおっと:" + ex.toString());
    ex.printStackTrace();
    return 2;
  }
}


StringWriterを使う

 とあるオープンソースのクラスライブラリに含まれていたコードから教えてもらった、 StringWriterクラスの使用例です。 テキストファイルの内容全体を文字列として読み込むときに便利な使い方です。

import java.io.*;

public class WholeFileReader2 {
  /**
   * テキストファイルの内容を一気に読んで、出力します。
   */
  public static String readFile(String fileName)
  throws IOException, FileNotFoundException, UnsupportedEncodingException
  {
    BufferedReader reader = new BufferedReader(
      new InputStreamReader(new FileInputStream(fileName), "JISAutoDetect") );
    /* Shift_JIS、EucJPなども使えます。*/
    StringWriter   sout = new StringWriter();
    PrintWriter    pout = new PrintWriter(sout);
    String         tempLine;

    while((tempLine = reader.readLine()) != null) {
      pout.println(tempLine);
    }
    pout.flush();
    reader.close();
    return sout.toString();
  }

  public static void main(String[] args) throws Exception {
    if(args.length != 1){
      System.err.println("usage: java WholeFileReader filename");
      System.exit(1);
    }
    System.out.println(WholeFileReader2.readFile(args[0]));
  }
}
/* end. */

Java kowaza Top

(first uploaded 2002/05/29 last updated 2002/08/04, Urano398 - KQ Taura)

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル