見出し画像

【Java】基本的なファイル操作を行う

基本的な下記の処理を行うコードを紹介します。

  • ファイルの作成

  • ファイルに書き込み

  • ファイル読み込み

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

この記事ではそれぞれの処理を関数としています。

package test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

public class FileOperation {

	public static void main(String[] args) {

		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);
	}
	

	/**
	 * ファイルを作成する処理
	 * @param filePath 作成するファイルのパス
	 */
	public static void makeFile(File filePath){

		try {

			if(filePath.createNewFile()) {
				System.out.println("ファイル作成成功");
			} else {
				System.out.println("ファイル作成失敗");
			}

		} catch(IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 引数に与えられたファイルにデータを書き込む処理
	 * @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();
			}
		}
	}

	/**
	 * ファイルの存在確認と削除処理
	 * @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("ファイルが存在しません");
		}
	}

	/**
	 * ファイルの内容を読み込む処理
	 * @param filePath ファイルパス
	 * @return fileData ファイルデータのリスト
	 */
	public static List<String> 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;
	}
}

上記のクラスを実行すると下記のように処理されます。

  1. 「test.txt」を作成

  2. データの書き込み

  3. データの読み込み

  4. 「test.txt」を削除

実行結果(test.txt削除前の出力結果)

Test1
Test2
Test3

それぞれの関数の処理内容を下記サイトで説明しています。


この記事が気に入ったらサポートをしてみませんか?