답변:
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)
파일이 제대로 작성되고 작동하지 않는 이유를 알 수 있는지 여부를 알 수 있습니다. 어떤 사람들은 이것이 중복이라고 위에서 언급했습니다. 사실이지만 일부 경우에는 더 나은 오류 처리가 필요합니다.