NIO2의 파일 복사, 삭제는 Files클래스에서 관리합니다.

형식도 매우 간단합니다.

- 파일 복사

Files.copy(원본파일패스, 복사파일패스, 파일옵션);

- 파일 옵션

REPLACE_EXISTING : 복사대상파일이 존재하면 덮어쓰기를 함. 
COPY_ATTRIBUTES  : 원본파일의 속성까지 모두 복사.


- 파일 삭제

Files.delete(삭제파일패스);


[샘플 소스]

import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
 
public class NioSample4 {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
 
		Path copyFrom = Paths.get("D:/nio2", "jdk-7u11-windows-i586.exe");
		Path copyTo = Paths.get("D:/nio2/", "jdk-7u11-windows-i586_copy.exe");
 
		Path parentPath = copyFrom.getParent();
		try {
 
			System.out.println("복사 전......");
			print(parentPath);
			Files.copy(copyFrom, copyTo, REPLACE_EXISTING);
 
			System.out.println("복사 후......");
			print(parentPath);
 
			Files.delete(copyFrom);
			System.out.println("삭제 후......");
			print(parentPath);
 
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
 
	}
 
	public static void print(Path path){
		DirectoryStream<Path> dir = null;
		try {
			dir = Files.newDirectoryStream(path);
			for (Path file : dir) {
				System.out.println(file.getFileName());
			}
			System.out.println();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (dir != null) {
					dir.close();
				}
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}



[실행 결과]

sample4.PNG



NIO2에서의 파일복사, 삭제 간단하지 않습니까?

어렵지 않으니까 이제부터 잘 활용해보세요. ^^;

감사합니다.