【Java】コピペで簡単ファイル操作!部品として使用できる

capcha1 プログラミング
スポンサーリンク

capcha1
この記事ではあまりJavaの知識がなくてもコードをコピペするだけでファイル操作を行えるように関数として紹介しています。
使用したいファイル操作の関数があればコピペして引数を設定すれば使えると思うので、試しにJavaを使ってみたいって方などにも役に立てると思います。

Javaってあまり使ったことなかったけどコピペするだけだから簡単にできた!!

この記事では下記の通り基本的なファイル操作の内容を紹介しています。

・ファイルの作成
・ファイルに書き込み
・ファイルの存在確認と削除
・ファイル読み込み

前提条件

まずは、この記事で紹介してる関数の引数に、操作するファイルのパスを渡しています。
Fileクラス型で以下のパスを設定しています。パスは使用する環境等で変えてください。
以下では「test.txt」に対してファイル操作を行います。

File filePath = new File(".\\test.txt");

各関数で使用してるクラスもインポートが必要になります。
エクリプスを使用していれば自動でインポートされると思うので問題ないと思いますが、サクラエディタのような物の場合は注意してください。

エクリプスの環境構築の方法を以下で詳しく紹介しています。

ファイル作成

まずは新規にファイルを作成する方法を紹介します。

/**
 * ファイルを作成する処理
 * @param filePath 作成するファイルのパス
 */
public static void makeFile(File filePath){
	try {
		if(filePath.createNewFile()) {
			System.out.println("ファイル作成成功");
		} else {
			System.out.println("ファイル作成失敗");
		}
	} catch(IOException e) {
		e.printStackTrace();
	}
}

簡単に説明しますと、FileクラスのcreateNewFile関数を使用するとファイルを作成できます。
戻り値としてbooleanが返されるのでif文で判定しています。
パスが存在しなかったりするとエラーになるので例外処理をしています。

ファイルに書き込み

次は、ファイルにデータを書き込む処理を紹介しましす。

/**
 * 引数に与えられたファイルにデータを書き込む処理
 * @param filePath ファイルのパス
 * @param prm      ファイルに書き込むデータ
 */
public static void writeToFile(File filePath, List<String> prm){

	PrintWriter pw = null;
	try {
		FileWriter file = new FileWriter(filePath);
		pw = new PrintWriter(new BufferedWriter(file));

		// ファイルに書き込み
		for(String row : prm) {
			pw.println(row);
		}
	} catch(IOException e) {
		e.printStackTrace();
	} finally {
		if(pw != null) {
			pw.close();
		}
	}
}

この処理では、引数にファイルのパスファイルに書き込むデータを格納したListを設定しています。
簡単に説明しましと、ファイルにデータを書き込むためのオブジェクトを作成してそれに対して、for文にてデータを書き込んでいます。
最後に、ファイルを閉じる処理を行っています。

ファイルの存在確認と削除

次に、ファイルの存在確認を行った後にファイルを削除する処理を紹介します。

/**
 * ファイルの存在確認と削除処理
 * @param filePath ファイルパス
 */
public static void deleteFile(File filePath){

    // ファイルの存在確認
    if(filePath.exists()) {
	// ファイルが存在する場合削除
	if(filePath.delete()) {
		System.out.println("ファイル削除成功");
	} else {
		System.out.println("ファイル削除失敗");
	}
    } else {
	System.out.println("ファイルが存在しません");
    }
}

簡単に説明しますと、Fileクラスのexists関数でファイルの存在確認を行い、ファイルが存在する場合にFileクラスのdelete関数を使用してファイルを削除しています。

ファイル読み込み

最後にファイルの読み込みを行う処理を紹介します。

/**
 * ファイルの内容を読み込む処理
 * @param filePath ファイルパス
 * @return fileData ファイルデータのリスト
 */
public static List readFile(File filePath){

	List<String> fileData = new ArrayList<>();
	try {
		BufferedReader br = new BufferedReader(new FileReader(filePath));
		String str;
		while ((str = br.readLine()) != null) {
			fileData.add(str);
		}
	} catch(Exception e) {
		e.printStackTrace();
	}

	return fileData;
}

簡単に説明しますと、BufferedReaderクラスのreadLine関数を使用して1行ずつデータを読み込みstr変数にデータを格納しています。str変数がnullではない場合にListのfileData変数に1行分のデータを格納しています。
全てのデータを取得した後に、戻り値としてList(fileData変数)を呼び出し元に返しています。

関数を呼び出す

この記事で紹介した関数を呼び出す場合の書き方の例を簡単に紹介しようと思います。

// 共通的に使用するファイルのパスを設定
File filePath = new File(".\\test.txt");

// ファイル作成
makeFile(filePath);

// 書き込むデータを作成
List<String> prm = new ArrayList<>();
prm.add("Test1");
prm.add("Test2");
prm.add("Test3");
// ファイルに書き込み
writeToFile(filePath, prm);

// ファイル読み込み
List<String> dt = readFile(filePath);
for(String row : dt) {
	System.out.println(row);
}

// ファイルの削除
deleteFile(filePath);

ファイル操作を行う関数の呼び出しについて簡単に説明します。

  • ファイル作成:makeFile関数を呼び出して「test.txt」を作成します。
  • ファイルに書き込み:初めにファイルに書き込むデータを作成してList(prm変数)設定してwriteToFile関数を呼び出してデータを書き込みます。
  • ファイル読み込み:readFile関数を呼び出してファイルの内容を読み込みます。関数の戻り値(読み込んだデータ)をdt変数に格納しています。
    そして読み込んだデータをfor文を使用して出力しています。
  • ファイルの削除:deleteFile関数を呼び出して「test.txt」を削除します。

上記writeToFile関数で書き込んだデータをreadFile関数で読み込んだ場合の出力結果は下記のようになります。

Test1
Test2
Test3

まとめ

この記事では下記の処理を行う内容を関数にて紹介しました。

・ファイルの作成
・ファイルに書き込み
・ファイルの存在確認と削除
・ファイル読み込み

それぞれの処理自体は簡単なコードで書けますが、それぞれ関数として用意しておくと使うときや修正が便利になります。

今回紹介した関数を試した関数はコピペで試すことができると思うので是非試しに使用してみてください。
エクリプスを使用していれば自動で必要なクラスがインポートされると思うので問題ないと思いますが、サクラエディタのような物の場合は注意してください。
エクリプスの環境構築の方法を以下で詳しく紹介しています。

また、すべてのコードを確認したい方は下記から確認できます。