강좌 & 팁
글 수 2,412
2013.03.03 12:28:21 (*.52.177.29)
75622
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(); } } } }
[실행 결과]
NIO2에서의 파일복사, 삭제 간단하지 않습니까?
어렵지 않으니까 이제부터 잘 활용해보세요. ^^;
감사합니다.