Java에서 파일을 이동하는 방법과 이름을 변경하는 방법은 크게 다르지 않다는 것을 알았다.
renameTo와 move 함수는 파일 이동과 파일 이름 변경이라는 결과는 같지만, 사용하는 과정에서 조금 다르다는 것을 알았다.
renameTo(File file) 사용
파일은 따로 이동하지 않고, 같은 경로에서 파일 이름만 변경하는 코드를 작성해 보았다.
변경 전 파일명과 변경 후 파일 명, 파일 경로를 미리 선언해 두었다.
// 파일 경로
String filePath = "C:\\test\\";
// 변경 전 파일명
String oldName = "old.txt";
// 변경 후 파일명
String newName = "new.txt";
// renameTo 사용
boolean result = useRenameTo(filePath, oldName, newName);
System.out.println("파일 이름 변경 결과 : " + result);
renameTo함수는 성공 여부에 따라 true 또는 false를 반환한다.
useRenameTo라는 함수를 따로 만들어 구현해 보았다.
/**
* renameTo 사용
* */
public static boolean useRenameTo(String filePath, String oldName, String newName) {
// 변경 전 파일 생성
File oldFile = new File(filePath + oldName);
// 변경 후 파일 생성
File newFile = new File(filePath + newName);
// True 또는 False 반환
boolean result = oldFile.renameTo(newFile);
return result;
}
실행하기 전에는 old.txt였지만, 실행 후에는 new.txt로 변경된 것을 확인 할 수 있다.
콘솔로 확인한 결과는 변경이 성공하였으므로 true가 출력되는 것을 확인 할 수 있다.
move(Path path) 사용
이번에도 파일은 따로 이동하지 않고, 같은 경로에서 파일 이름만 변경하는 코드를 작성해 보았다.
변경 전 파일명과 변경 후 파일 명, 파일 경로를 미리 선언해 두었다.
// 파일 경로
String filePath = "C:\\test\\";
// 변경 전 파일명
String oldName = "old.txt";
// 변경 후 파일명
String newName = "new.txt";
// move 사용
Path result = useMove(filePath, oldName, newName);
System.out.println("변경된 파일 이름 : " + result.toString());
move함수는 성공 시, 해당 파일의 Path 객체를 반환한다.
useMove라는 함수를 따로 만들어 구현해 보았다.
RuntimeException이 발생해서 그런지 꼭 try/catch나 throws 예외 처리를 해 주지 않으면 안 되었다.
/**
* move 사용
* */
public static Path useMove(String filePath, String oldName, String newName) {
// 변경 전 파일 경로
Path oldPath = Paths.get(filePath + oldName);
// 변경 후 파일 경로
Path newPath = Paths.get(filePath + newName);
// 결과
Path result;
try {
// Path 반환
result = Files.move(oldPath, newPath);
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
아까와 마찬가지로 실행하기 전에는 old.txt였지만, 실행 후에는 new.txt로 변경된 것을 확인 할 수 있다.
콘솔로 Path 객체를 toString으로 출력해 본 결과 다음과 같이 출력되었다.
이상, 오늘도 밤톨만큼 코딩했다.
참고
'코딩 > JAVA' 카테고리의 다른 글
[JAVA] replaceAll을 사용해서 특정 문자들을 지우기 (0) | 2022.11.29 |
---|---|
[JAVA] String index out of range 에러 발생하는 이유 (0) | 2022.11.27 |
[JAVA] 라이브러리를 사용하여 JSON 데이터 만들기 (ft. gson) (0) | 2022.11.23 |
[JAVA] 문자열을 split 함수를 사용해서 특정 구분자로 나눠보자 (0) | 2022.11.19 |
[JAVA] SimpleDateFormat 오전, 오후 포함 문자열 날짜 형식 변경 (0) | 2022.11.05 |