2012-11-25 1 views
1

File 클래스의 createNewFile() 메서드 대신 FileWriter() 클래스 & 생성자를 사용하면 장점이 있습니까?Java FileWriter()와 createNewFile()?

차이점이나 이점을 알 수 없습니다. createNewFile()은 더 간단하고 직관적으로 보이므로 FileWriter 사용을 포기할 생각을하고 있지만 확인하고 싶습니다.

감사합니다.

답변

5

File.createNewFile()은 빈 파일 만 만듭니다. FileWriter을 사용하면 문자 기반 데이터를 파일에 쓸 수 있습니다.

가장 직접적이고 분명한 방법을 사용할 수 있습니다. 비어있는 새 파일을 원한다면 전자는 잘 작동합니다. 더 복잡한 것은 보통 어떤 종류의 Writer 또는 OutputStream을 포함합니다.

+0

협조해야합니까? 즉, 새로운 파일을 만들고 싶지만 결국 같은 프로그램에서 필자는이 파일에 쓰기를 원합니다. – bigsonny

+0

원하는만큼 여러 번 파일을 열거 나 닫을 수 있지만 이렇게하려면 일반적으로 작은 비용이 듭니다. –

0

빈 파일을 만들어야하는 경우 File.createNewFile()을 사용하십시오. 파일에 쓰려면 FileWriter을 사용하십시오. 생성자 FileWriter(String fileName, boolean append)에는 대부분 append 부울 매개 변수가 유용합니다.

그러나 유용한 방법 (예 : println())을 사용하기 때문에 FileWriter을 사용하여 파일에 char 기반 데이터를 쓰는 것이 좋습니다 (영문 PrintWriter).

+1

'Writer's로 작업 할 때 보통'Charset'을 지정해야합니다. 항상 올바르게 설정되도록 시스템 charset을 사용하면 거의 항상 가치가 있습니다. –

+0

@StevenSchlansker +1 동의! –

+0

이 권장 사항의 단점은 PrintWriter가 예외를 삼킨다는 것입니다. 예를 들어 네트워크를 통해 사용해서는 안됩니다. BufferedWriter가 더 좋습니다. – EJP