「Java8」try-with-resourcesでファイルをコピーするサンプル
環境
JavaSE 1.8
Eclipse 4.14.0
構文
try (InputStream inputStream = new FileInputStream(変数名1);
OutputStream outputStream = new FileOutputStream(変数名2)) {
処理コード}
try-with-resources文は、1つ以上のリソースを宣言するtry文です。
finallyブロックでcloseメソッドを呼び出さなくても自動でcloseをしてくれるようになります。 close処理内で例外が発生してもtry文の中の例外がスローされます。 try-with-resources文は、文の終わりで各リソースが確実に閉じられるようにします。
使用例
package com.arkgame.study; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class FileCopyResDemo { public static void main(String[] args) throws IOException { String strA = "C:\\src\\45.txt"; String strB = "C:\\dest\\67.txt"; fileCopy(strA, strB); } /** * ファイルコピーを行う関数 * * @param srcFile コピー元ファイル * @param destFile コピー先ファイル * @throws IOException */ protected static void fileCopy(String srcFile, String destFile) throws IOException { try (InputStream inputStream = new FileInputStream(srcFile); OutputStream outputStream = new FileOutputStream(destFile)) { byte[] buffer = new byte[250]; int num; while ((num = inputStream.read(buffer)) >= 0) { outputStream.write(buffer, 0, num); } } System.out.println("ファイルをコピーしました。"); } }
実行結果:ファイル「45.txt」の内容を「67.txt」にコピーしました。