脱!プログラミング入門

このブログではプログラミング入門後にさらに能力を伸ばすための援助ができるようにしたいです

Javaでファイル入出力を試そう

 今回はJavaでのファイル入出力について書いていきたいと思います.おそらく多くの入門書でファイル入出力を扱っていると思われますが,一度入門書を読んだだけではファイル入出力はプログラムでどう書けばできるか忘れがちだと思います.ファイル入出力は今後プログラムを書く際に割と頻繁に扱うことになるでしょう.私も全然覚えられなくて,結局使うたびにググるハメになります.このググる時間が短縮できればプログラムを書くのがかなり速くなるに違いありません.面倒くさいですがこの際覚えてしまいましょう.

Javaでのファイル入出力の簡単な例

 早速Javaでのファイル入出力の例を載せていきます.とにかくこの書き方だけでも覚えておけばどうにかなるだろうというのを次に示します.

ファイルの読み込み

import java.io.*;

public class FileReaderTrial {
    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("読み込み対象のファイルパス");

            ...
            
            fr.close();
        } catch (IOException e) {
            System.out.println("Exception: " + e);
        }
    }
}

ファイルへの書き込み

import java.io.*;

public class FileWriterTrial {
    public static void main(String[] args) {
        try {
            FileWriter fw = new FileWriter("書き込み対象のファイルパス");

            ...

            fw.close();
        } catch(IOException e) {
            System.out.println("Exception: " + e);
        }
    }
}

たったこれだけでファイル入出力が扱えるようになるのですが,私はすぐに忘れてしまいます.ファイルの中味を表示,ファイルへの書きこみは次のようにすれば可能です. ファイルの中味を表示

import java.io.*;

public class FileReaderTrial {
    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("読み込み対象のファイルパス");

            int i;
            while((i = fr.read()) != -1) {
                System.out.print((char) i);
            }

            fr.close();
        } catch (IOException e) {
            System.out.println("Exception: " + e);
        }
    }
}

ファイルに1行書き込み

import java.io.*;

public class FileWriterTrial {
    public static void main(String[] args) {
        try {
            FileWriter fw = new FileWriter("書き込み対象のファイルパス");

            fw.write("Hello\n");

            fw.close();
        } catch(IOException e) {
            System.out.println("Exception: " + e);
        }
    }
}

ここで,ファイルへの書き込みについて注意すべきことがあります.このままだと,書き込み対象のファイルの全ての内容が上書きされてしまいます.試しに使うファイルは上書きするとまずいものを使わないようにしましょう.書き込み対象のファイルのファイル末尾に何かを追記したい場合はFileWriterインスタンス生成時に

FileWriter fw = new FileWriter(“書き込み対象のファイルパス”, ture);

とすると可能になります.  ファイル読み込みについてですが,このままでは1文字ずつしか扱えないのが少々不便ですね.1行毎に持ってきたりとか,文字数を指定して持ってきたりとかすればファイルの読み込みが扱いやすい場合があります.次からは,読み込んだファイルからまとめて内容を取ってくる方法を説明します.

BufferedReaderを使ったファイル読み込み

 読み込んだファイルから内容をまとめて取ってくるにはBufferedReaderを用います.以下にBufferedReaderを用いてファイルから1行ずつ内容を表示する例を示します.

import java.io.*;

public class FileReaderTrial {
    public static void main(String[] args) {
        try {
            FileReader fr = new FileReader("index.html");
            BufferedReader br = new BufferedReader(fr);

            String line;
            while((line = br.readLine()) != null) {
                System.out.println(line);
            }

            br.close();
        } catch (IOException e) {
            System.out.println("Exception: " + e);
        }
    }
}

終わりに

 今回はファイルの入出力について説明しました.ファイル入出力は色々なファイルからデータを取ってきたり,プログラムで加工したデータを保存したりするために使うのでかなり重要です.にも関わらず,一度入門書を読んだだけでは完璧に覚えるのは難しいです.覚えるようになるまで,使う機会が来るたびに調べ直すということを繰り返すことになり効率的ではありません.そのため,最初の方に書いたファイルの読み込み,ファイルへの書き込みのプログラムの書き方だけでも覚えると調べる手間が省けると思います.  こんな感じで色々な標準クラスなどの使い方を覚えることができれば開発のスピードがかなり上がります.自分自身もこのブログで書くことでクラスやライブラリの使い方を覚え,手早くプログラムが書けるようになりたいと思います.

スッキリわかるJava入門第2版 [ 中山清喬 ]

価格:2,808円
(2019/8/26 15:36時点)
感想(12件)