2013年2月10日日曜日

[Java]ファイル入出力

ファイル読み込み
FileReader, BufferedReader クラスを使ってファイルの読み込みを行う
Example: java_file_00.java
/* ファイル読み込み */
import java.io.*;

public class java_file_00 {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("Input file name");
            System.exit(1);
        }

        try {
            FileReader fr = new FileReader(args[0]);
            BufferedReader br = new BufferedReader(fr);

            String str;
            while ((str = br.readLine()) != null) {
                System.out.println(str);
            }
            br.close();
            System.out.println("------------------ End");
        }
        catch (IOException e) {
            e.printStackTrace();
            System.out.println("Error");
            System.exit(1);
        }
    }
}
実行結果
> javac java_file_00.java
> java java_file_00 java_file_00.java
/* ファイル読み込み */
import java.io.*;

public class java_file_00 {
    public static void main(String[] args) {
        if (args.length == 0) {
            System.out.println("Input file name");
            System.exit(1);
        }

        try {
            FileReader fr = new FileReader(args[0]);
            BufferedReader br = new BufferedReader(fr);

            String str;
            while ((str = br.readLine()) != null) {
                System.out.println(str);
            }
            br.close();
            System.out.println("------------------ End");
        }
        catch (IOException e) {
            e.printStackTrace();
            System.out.println("Error");
            System.exit(1);
        }
    }
}
------------------ End

ファイル書き込み
FileOutputStream, OutputStreamWriter, BufferedWriter クラスを使ってファイルへの書き込みを行う
Example: java_file_01.java
/* ファイル書き込み */
import java.io.*;

public class java_file_01 {
    public static void main(String[] args) {
        try {
            FileOutputStream fos = new FileOutputStream("test.txt");
            OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
            BufferedWriter bw = new BufferedWriter(osw);
            String str = "Hello, world\n";
            bw.write(str);
            str = "日本語入力はできますか?\n";
            bw.write(str);

            bw.close();
            osw.close();
            fos.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
ソースコードのエンコードを UTF-8 にする場合はコンパイル時に -encoding UTF-8 オプションをつけないと日本語文字列の処理に失敗してしまう

実行結果
> javac -encoding UTF-8 java_file_01.java
> java java_file_01
test.txt は UTF-8 で以下のように書き込まれる
Hello, world
日本語入力はできますか?

0 件のコメント:

コメントを投稿