답변:
FileNotFoundException파일이 존재하지 않고 생성 할 수없는 경우 ( doc ) 를 던지지 만 가능하면 파일 을 만듭니다. 할 수 있는지 아마해야 당신이를 만들기 전에 파일이 존재하는지 첫 번째 테스트 FileOutputStream(과 함께 만들 createNewFile()그렇지 않은 경우)
File yourFile = new File("score.txt");
yourFile.createNewFile(); // if file already exists will do nothing
FileOutputStream oFile = new FileOutputStream(yourFile, false);
createNewFile()내 예제와 같이 메소드 가있는 @StefanDunn .
createNewFile()여기에 시간 낭비입니다. 시스템은 이미 그렇게 할 것입니다. 당신은 그것을 두 번 보도록 강요하고 있습니다.
파일을 작성하기 전에 모든 상위 디렉토리를 작성해야합니다.
사용하다 yourFile.getParentFile().mkdirs()
File f = new File("Test.txt");
if(!f.exists()){
f.createNewFile();
}else{
System.out.println("File already exists");
}
이것을 생성자 f에게 전달하십시오 FileOutputStream.
아파치 커먼즈의 FileUtils 는 한 줄로 이것을 달성하는 아주 좋은 방법입니다.
FileOutputStream s = FileUtils.openOutputStream(new File("/home/nikhil/somedir/file.txt"))
존재하지 않는 경우 상위 폴더를 작성하고 존재하지 않는 경우 파일을 작성하고 파일 오브젝트가 디렉토리이거나 쓸 수없는 경우 예외를 발생시킵니다. 이것은 다음과 같습니다 .
File file = new File("/home/nikhil/somedir/file.txt");
file.getParentFile().mkdirs(); // Will create parent directories if not exists
file.createNewFile();
FileOutputStream s = new FileOutputStream(file,false);
현재 사용자가 작업을 수행 할 수없는 경우 위의 모든 작업에서 예외가 발생합니다.
존재하지 않는 경우 파일을 작성하십시오. 파일이 종료되면 내용을 지우십시오.
/**
* Create file if not exist.
*
* @param path For example: "D:\foo.xml"
*/
public static void createFile(String path) {
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
} else {
FileOutputStream writer = new FileOutputStream(path);
writer.write(("").getBytes());
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
당신은 잠재적으로 얻을 수 있습니다 FileNotFoundException파일이 존재하지 않으면 .
자바 문서는 말합니다 :
파일을 사용할 수 있는지 또는 만들 수 있는지 여부는 기본 플랫폼 http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html에 따라 다릅니다.
Java 7을 사용하는 경우 java.nio 패키지를 사용할 수 있습니다.
options 매개 변수는 파일을 작성하거나 여는 방법을 지정합니다. 파일이 없으면 파일을 작성하여 작성합니다.
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
new FileOutputStream(f) 대부분의 경우 파일을 만들지 만 불행히도 FileNotFoundException이 발생합니다.
파일이 존재하지만 일반 파일이 아닌 디렉토리 인 경우, 존재하지 않지만 작성할 수 없거나 다른 이유로 열 수없는 경우
다시 말해 "파일을 만들 수 없습니다"라는 의미의 FileNotFoundException이 발생하지만 파일 생성이 실패한 이유를 찾을 수없는 경우가 많이있을 수 있습니다.
해결책은 훨씬 나은 오류 처리 기능을 제공하므로 File API에 대한 호출을 제거하고 Files API를 대신 사용하는 것입니다. 일반적으로 어떤 교체 new FileOutputStream(f)와 함께 Files.newOutputStream(p).
File API를 사용해야하는 경우 (예를 들어 File을 사용하여 외부 인터페이스를 사용하기 때문에)를 사용하면 Files.createFile(p)파일이 제대로 작성되고 작동하지 않는 이유를 알 수 있는지 여부를 알 수 있습니다. 어떤 사람들은 이것이 중복이라고 위에서 언급했습니다. 사실이지만 일부 경우에는 더 나은 오류 처리가 필요합니다.