2017-02-11 7 views
-2
package com.company; 

public class Main { 

    public static void main(String[] args) { 
    java.io.File file = new java.io.File("image/us.gif"); 
    System.out.println("Does it exist:" + file.exists()); 
    System.out.println("The file has " + file.length() + "bytes"); 
    System.out.println("Can it be read? " + file.canRead()); 
    } 
} 

이 코드는 저의 Java 프로그래밍 입문서에서 복사했으나 올바르게 컴파일되었지만 파일을 만들지는 못하고 메소드에 대해 false와 zero 바이트를 반환합니다. 누군가 제가 최선의 답을 줄 수 있도록 도와 주시겠습니까?Java가 파일을 생성하지 않습니다.

+0

파일을 만들거나 읽으시겠습니까? –

+2

'new java.io.File ("image/us.gif");'단독으로는 기본적으로 아무것도하지 않습니다. 읽기 또는 쓰기를 위해 일종의 바이트 스트림이 필요합니다. 너 뭐하려고? –

+2

'File'은'File'의 가상 개념으로 존재할 필요는 없습니다. 가상 개념으로 표현되는'File'을 "생성"하고 싶다면 [File # createNewFile '] (https://docs.oracle.com/javase/7/docs/api/java/io/File.html#createNewFile()) - 빈 파일이 생성됩니다. 시스템에서'File'을 알고 있다고 가정하면'File'을 가리켜 더 나은 결과를 얻을 것입니다 – MadProgrammer

답변

1

이미 존재하지 않는 한 파일을 수동으로 만들어야합니다. 새로운 File 객체를 생성하는 것은 파일 시스템에 파일을 생성하는 것과 혼동되어서는 안됩니다.

파일을 만들려면 당신은 클래스 파일에 존재하는 방법 createFile(); 사용해야합니다 : 덮어 쓰기 방지하기 위해 그것을 만들기 전에 파일이 존재하는지 확인하기 위해

File someFile = new File("path.to.file"); 
someFile.createFile(); 

그것은 또한 좋은 생각이 될 것를 . 다음을 통해이 작업을 수행 할 수 있습니다.

File someFile = new File("path.to.file"); 
if(!someFile.exists()) { 
    someFile.createFile(); 
} 

이렇게하면 새 빈 파일이 만들어집니다. 즉, 길이가 0이됩니다. 파일에 쓰려면 바이트 스트림이 필요합니다.

File test = new File("SomeFileName.txt"); 
FileWriter fw = new FileWriter(test); 
fw.append("Hello! :D"); 
fw.close(); 


: 난 당신이 처리해야합니다 던져 예외 위의 예에서 사용 된 몇 가지 방법 예를 들어, FileWriter를 사용하여.

관련 문제