의 존재를 확인하는 방법을 나는이 작은 코드자바, 파일
File source;
if (!source.exists()) {
source = new File("instances/student"+student.getStudentID()+".data");
}
문제는, 소스가 초기화되지 않고있다에게 있습니다. 요점은 그것이 존재 하는지를 검사하는 것이므로 어떻게 이것을 피할 수 있습니까?
의 존재를 확인하는 방법을 나는이 작은 코드자바, 파일
File source;
if (!source.exists()) {
source = new File("instances/student"+student.getStudentID()+".data");
}
문제는, 소스가 초기화되지 않고있다에게 있습니다. 요점은 그것이 존재 하는지를 검사하는 것이므로 어떻게 이것을 피할 수 있습니까?
File
개체를 만듭니다.
File source = new File(...);
사용하는 생성자는 파일을 찾는 방법에 따라 다릅니다. 간단한 경로 문자열로 충분할 수 있습니다.
편집 : 그냥 혼란의 원인을 깨닫게 될 수도 있습니다. File
개체를 만들면 파일 시스템에서 파일을 찾거나 만들려고합니다. 그건 사실이 아니야. new File(...)
으로 전화하면 존재 여부를 확인하거나 생성하려고 시도하지 않습니다. File 객체는 파일 시스템의 경로에 대한 추상화입니다. 디렉토리 일 수도 있습니다.
File f = new File(somepathhere);
if (!f.exists()) {
f = new File("instances/student"+student.getStudentID()+".data");
}
을 또는 당신은 f.isFile 경우() 확인하실 수 있습니다
당신은 할 수 있습니다. 파일을 작성해도 파일 시스템에 파일이 작성되지는 않습니다. File 객체는 실제로 파일 이름만을 나타냅니다. 파일이 있는지 여부를 확인하려면 적절한 이름의 파일을 만들고 exists()
을 확인하십시오.
하지만 파일을 덮어 쓰거나 파일에 추가하려면 모든 파일이 필요하지 않습니다. append
매개 변수를 true
으로 설정하고 추가하려는 경우 new FileOutputStream(...)
만 작성하면됩니다. 사전에 확인할 필요가 없습니다. 사실 시간 낭비 일뿐입니다.
당신은 오해를 갖고있는 것 같다 :
잠깐, 내가 새로운 파일 (...)을 작성하면 기존 파일을 덮어 쓰지 않을 것입니다. – vedran
@vedran 정확합니다. 파일 시스템에는 아무 것도하지 않습니다. 그것은 단지 자바 객체입니다. 'exists()','delete()'또는'renameTo'와 같은 메소드를 호출 할 때만 실제 파일에 접근 할 수 있습니다. 내용을 변경하려면'FileWriter'와 같은 것이 필요할 것입니다. 존재하지 않는 파일을 생성하려면'File' 객체에 대해'createNewFile()'을 호출하십시오. 정확한 정보는 [JavaDoc] (http://download.oracle.com/javase/6/docs/api/java/io/File.html)에서 확인하십시오. –