2013-08-21 5 views
-4

그럼 내 질문입니다 내가 그렇게디렉토리가 존재하지 않으면 파일이 생성됩니까?

File f = new File("THE_Folder/me.txt"); 

그러나 폴더에 존재 나던 "THE_Folder", 같은 파일을 만들고있어 말하면 것이다 내가 파일을 저장하고있을 때 여전히 결국 생성 할 파일? "THE_Folder"와 "me.txt"를 만들 수 있습니까?

+4

시도하면 어떻게됩니까? 그건 그렇고 내 투표는 아닙니다. –

+1

-1 :이 질문은 연구 노력을 나타내지 않습니다. [the doc] (http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File (java.lang.String))을 참조하십시오. – bdares

+1

혹시 사용해 보셨습니까? –

답변

3

아니요. 그러나 편리한 방법은 createNewFile()mkdirs()입니다.

보다 구체적으로, 디렉토리를 만들 mkdirs()를 사용하지만, 당신은 당신이있는 me.txt라는 디렉토리를 만들고 싶지 않기 때문에 처음 getParentFile()를 호출 할 수 있습니다.

그런 다음 createNewFile() 메서드를 호출하여 최종적으로 새 파일을 만들 수 있습니다.

EJP가 설명한 것처럼 FileOutputStreamFileWriter이 새 파일을 생성하므로 createNewFile()을 호출 할 필요가 없습니다.

+0

아니요. 'File.createNewFile()'도 같은 방식으로 동작합니다. 누락 된 중간 디렉토리는 만들지 않습니다. – EJP

+0

존재하지 않는 디렉토리에 이것을 시도 했습니까? –

+0

죄송합니다. 방금했는데 답을 수정했습니다. – sgbj

2

File은 파일/폴더를 만들지 않으며, 지정한 이름의 파일 (폴더가 아님)을 생성하는 createNewFile() 메서드를 호출하지 않는 한 파일을 열뿐입니다. 따라서 아니요, 그렇지 않습니다.

+0

'제외'는 없습니다. 'File.createNewFile()'은 디렉토리를 생성하지 않습니다. – EJP

+0

내 잘못입니다. 질문에서 '폴더'라는 단어를 읽지 않았습니다. 답변을 수정했습니다 :-) –

+0

아직도 틀렸어. 그것은 '파일을 열지 않습니다'. 단지'File' 객체를 메모리에 생성합니다. 그것은 파일 시스템에 대해 아무 것도하지 않습니다. – EJP

2

File 개체를 생성하면 파일이나 디렉터리가 생성되지 않습니다.

File f2 = f.getParentFile(); 
if (f2 != null) f2.mkdirs(); 

을 호출하여 존재하지 않는 디렉토리를 만들 수 있습니다. (당신이 f 부모 디렉토리를 지정해야 있다면 당신은 기존 또는 그렇지 않으면 null 검사가 필요하지 않습니다.) 그 후, 당신은 파일 자체를 만들

f.createNewFile(); 

를 호출 할 수 있습니다. 디렉토리를 만들기 전에 파일을 만들려고 시도하면 IOException이됩니다.

+0

'f.getParentFile(). mkdirs()'실제로. – EJP

+0

@EJP - 좋은 캐치 –

관련 문제