【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;
}
}
上記のクラスを実行すると下記のように処理されます。
「test.txt」を作成
データの書き込み
データの読み込み
「test.txt」を削除
実行結果(test.txt削除前の出力結果)
Test1
Test2
Test3
それぞれの関数の処理内容を下記サイトで説明しています。
この記事が気に入ったらサポートをしてみませんか?