libro
www.tuyano.com
Android開発ビギナーのためのJava超入門

Androidで使えるJava SEのクラスライブラリ (3/5)

作成:2011-01-31 16:01
更新:2011-01-31 16:01

■java.ioはファイルアクセスのライブラリ

続いて登場する「java.io」は、ファイルアクセスに関する機能を提供するためのパッケージです。このパッケージには、ファイルアクセスのためのさまざまなクラスがまとめられています。

◯テキストファイルの読み込み
テキストファイルは「FileReader」「BufferdReader」といったクラスとして用意されています。前者がファイルからの読み込み用、後者がバッファ機能を提供するためのものです。これらを使い、ファイルから行単位でテキストを読み込むのがテキスト読み込みの基本です。

◯テキストファイルの書き出し
テキストのファイル保存は「FileWriter」「BufferedWriter」といったクラスを利用します。これも前者がファイルへの書き出し用、後者がバッファ機能の提供用です。

◯バイナリファイルの読み込み
バイナリデータは、「InputStream」「FileInputStream」「BufferedInputStream」といったいくつものクラスを組み合わせて行います。それぞれ「データの入力用」「ファイルからの入力機能を追加する」「バッファ機能を追加する」というクラスになります。

◯バイナリファイルの書き出し
こちらもやはり「OutputStream」「FileOutputStream」「BufferedOutputStream」といったクラスが用意されていて、これらを組み合わせて作業をします。やはり「データの出力用」「ファイルへの出力機能の追加」「バッファ機能の追加」といったクラスです。

ファイルアクセスは、きっちり理解しようとするとそれなりに大変です。クラスの数も多いですし、さまざまな昨日のクラスを組み合わせて使わないといけません。また、これらは例外エラー)が発生しやすいので、例外処理をよく考えて作らないといけません。

下に、テキストファイルの読み書きをする簡単なサンプルを上げておきましょう。これは「test.txt」というファイルを読み込み、その内容を「test2.txt」ファイルに書き出す例です。いくつものクラスと青海処理の構文が組み合わせられていることがわかるでしょう。

とりあえず、バイナリファイルよりテキストファイルのほうが簡単なので、こちらから使えるようにしましょう。これが使えると、Androidでもデータを保存したりロードしたりするのが楽に行えるようになりますよ。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

import java.io.*;

public class Sample {
	
	public static void main(String[] args){
		FileReader reader = null;
		FileWriter writer = null;
		BufferedReader breader = null;
		BufferedWriter bwriter = null;
		String result = null;
		try {
			reader = new FileReader("test.txt");
			breader = new BufferedReader(reader);
			result = breader.readLine();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				breader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		System.out.println("read data: " + result);
		try {
			writer = new FileWriter("test2.txt");
			bwriter = new BufferedWriter(writer);
			bwriter.write(result);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				bwriter.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		System.out.println("end.");
	}

}
※関連コンテンツ

「Android開発ビギナーのためのJava超入門」に戻る