【Java】チートシート【ファイル入出力編】
ファイル書き込み
// テキストに書き込み
File file = new File("test.txt");
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file));) {
// 書き込み
bw.write("ABCDE");
// 改行
bw.newLine();
// 書き込み
bw.write("あいうえお");
} catch(IOException e) {
System.out.println(e);
}
ファイル読み込み
1文字ずつ読み込み
// テキストの読み込み
File file = new File("test.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file));) {
// 1文字ずつ読み込み
int ch = br.read();
while(ch != -1) {
System.out.println((char)ch);
ch = br.read();
}
} catch(IOException e) {
System.out.println(e);
}
1行ずつ読み込み
// テキストの読み込み
File file = new File("test.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file));) {
// 1行ずつ読み込み
String line = br.readLine();
while(line != null) {
System.out.println(line);
line = br.readLine();
}
} catch(IOException e) {
System.out.println(e);
}
存在チェック
Fileを使った場合
// 存在チェック
File file = new File("test.txt");
if(file.exists()) {
// ファイル存在する
}
Pathを使った場合
// 存在チェック
Path path = Paths.get("test.txt");
if (Files.exists(path)) {
// パスが存在する場合の処理
}
if(Files.notExists(path)) {
// パスが存在しない場合の処理
}
コピー
// コピー
Path from = Paths.get("test1.txt");
Path to = Paths.get("test2.txt");
try {
// fromをtoにコピー
Files.copy(from, to);
} catch(IOException e) {
System.out.println(e);
}
移動
// 移動
Path from = Paths.get("test1.txt");
Path to = Paths.get("test2.txt");
try {
// fromをtoに移動
Files.move(from, to);
} catch(IOException e) {
System.out.println(e);
}
削除
ファイル削除
// 削除
Path path = Paths.get("test1.txt");
Path to = Paths.get("test2.txt");
try {
// 削除
Files.delete(path);
// 存在する場合削除
Files.deleteIfExists(path);
} catch(IOException e) {
System.out.println(e);
}
ディレクトリ削除
private static void delDirectory(File dir) {
for(File file: dir.listFiles()) {
if(file.isDirectory()) {
// ディレクトリの場合は再帰呼び出し
delDirectory(file);
} else {
// ファイル削除
file.delete();
}
}
// ディレクトリ削除
dir.delete();
}
サイズチェック
File file = new File("test.txt");
// バイト
long bytes = file.length();
// キロバイト
long kBytes = file.length() / 1024;
// メガバイト
long mBytes = file.length() / 1024 / 1024;