자바 file.renameTo false 의 원인 및 해결 방안 되 돌려 주기
폴 더 에 있 는 파일 의 이름 을 바 꿔 야 합 니 다.false 로 돌아 간 것 을 발 견 했 습 니 다.먼저 main 방법 으로 테스트 한 결과 문제 가 없 음 을 발 견 했 습 니 다.다음 과 같 습 니 다.
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\aabb.xml");
File file2 = new File("D:\\ccdd.xml");
boolean b = file1.renameTo(file2);
System.out.println(b); // true
}
마지막 으로 한 파일 이 파일 로 스 트림 되 어 있 는 것 을 발 견 했 습 니 다.스 트림 은 close 를 사용 하지 않 아 파일 이름 을 바 꾸 는 데 실 패 했 습 니 다.다음 과 같이 시 뮬 레이 션 합 니 다.
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\aabb.xml");
FileWriter out = new FileWriter(file1);
File file2 = new File("D:\\ccdd.xml");
boolean b = file1.renameTo(file2);
System.out.println(b);// false
}
최종 적 으로 도 잘 해결 되 고 있 습 니 다.적당 한 곳 을 찾 아서 닫 았 으 면 좋 겠 어 요.
public static void main(String[] args) throws IOException {
File file1 = new File("D:\\aabb.xml");
FileWriter out = new FileWriter(file1);
out.close();
File file2 = new File("D:\\ccdd.xml");
boolean b = file1.renameTo(file2);
System.out.println(b);//true
}
자바 File.renameTo 방법,주의해 야 할 구덩이최근 오래된 프로젝트 를 인수 할 때 File.renameTo(File file)방법 을 만 나 특성 을 잘 모 르 기 때문에 다음 소스 코드 를 연구 한 결과 바 텀 호출 은 Native 방법 으로 이 루어 진 것 으로 나 타 났 다.
그 자체 가 용법 에 대한 곤 혹 스 러 움 을 가지 고 테스트 사례 를 써 서 베일 을 벗 기 고 사용 할 때 주의해 야 할 두 가 지 를 발견 했다.
테스트 용례 코드 는 다음 과 같다.
import java.io.File;
import java.io.IOException;
public class TestRenameTo {
public static void main(String[] args) {
File file = new File("f:\\1.txt");
if (!file.isFile()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
// renameTo()
System.out.println(file.exists());
file.renameTo(new File("f:\\2.txt"));
// renameTo()
System.out.println(file.exists());
}
}
첫 번 째 실행 프로그램,디 렉 터 리 아래 1.txt 와 2.txt 가 존재 하지 않 습 니 다.얻 은 결 과 는 다음 과 같다.
renameTo 호출 전후 1.txt 가 먼저 존재 한 다음 사라 지고 마지막 폴 더 에 2.txt 가 생 성 되 었 음 을 알 수 있 습 니 다.
두 번 째 결 과 를 편리 하 게 비교 하기 위해 2.txt 에 내용 을 쓰 고"hello world!"(나 를 용서 하 는 중 2^-^)
두 번 째 실행 프로그램,디 렉 터 리 에 2.txt 가 존재 합 니 다.결 과 는 다음 과 같 습 니 다.
2.txt 의 내용 이 바 뀌 지 않 았 습 니 다.이번 이름 변경 이 성공 하지 못 했 음 을 증명 합 니 다.
요약:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.