2012-11-19 5 views
-2

저는 Java를 배우고 있습니다. 이미 writeTo() 메소드로 만든 .ser 파일에서 읽을 수있는 프로그램을 작성하려고합니다.읽을 파일이 실제로 존재하는지 어떻게 알 수 있습니까?

프로그램에서 읽으라는 말을하기 전에 주어진 파일이 시스템에 있는지 알고 싶습니다.

내 코드는 다음과 같습니다

public boolean readFromSerializedFile(String fileName){ 
    FileInputStream fileInStream = null; 
    ObjectInputStream objectInStream = null; 

    try{ 
     fileInStream = new FileInputStream(fileName); 
     objectInStream = new ObjectInputStream(fileInStream); 

매개 변수의 이름으로 파일을 루트 디렉토리에 존재하는 (또는 어디든지 다른 지정) 만약 내가 결정할 수있는 간단한 방법이 있나요?

+1

합니까하지 File 클래스는 직접이 문제를 해결 할 방법이,'()'존재? –

+0

... 내가 아는 게 없다. – CodyBugstein

+2

먼저 API를 보셨습니까? 이는 우리를 대신하여 우리를 사용하는 것보다 시간과 우리를 더 잘 사용하는 것 같습니다. –

답변

4

File.exists() 메서드를 사용할 수 있습니다.

파일 abc.xml이 있는지 알고 싶습니다. 다음 코드는이를 수행하는 방법을 보여줍니다.

final File file = new File ("abc.xml"); 
final boolean exists = file.exists(); 
System.out.println ("abc.xml " + (exists ? "exists" : "does not exist")); 
1
Using java.io.File 
... 
String path = "C:\test.txt"; 
File f = new File(path); 
if(f.exists()) 
+0

위의 행에서 f를 작성했으면 분명히 존재할 것입니다 ? – CodyBugstein

+0

이것은 java.io.File 오브젝트를 작성합니다. 디스크에 파일을 만들지 않습니다. 어떤 경로로든 입력 할 수 있습니다. 즉, 파일이 시스템에 존재 함을 의미하지는 않습니다. f.exists()는 주어진 경로에있는 파일이 실제로 존재하는지 여부를 알려줍니다. – ajon

0

당신은 당신이 설명 된 시나리오에 던져 질 것이다 java.io.FileNotFoundException을 잡을 수 있습니다.

0
FileReader br = new FileReader(file); 

    if(br.ready()) 
    return; 
    else 
    System.exit(1); 
3

기타 File.exists 언급,하지만 당신은 자바를 배우고 아마 자바 SE 7을 사용하는 경우, 내가 대신 새로운 NIO 파일 API를 사용하는 것이 좋습니다 : 또한

Files.exists(Paths.get(filename)); 

http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#exists%28java.nio.file.Path,%20java.nio.file.LinkOption...%29

오라클의 Java Tutorial은 표준 Java API를 배우는 데 매우 유용합니다.

http://docs.oracle.com/javase/tutorial/

http://docs.oracle.com/javase/tutorial/essential/io/fileio.html

http://docs.oracle.com/javase/tutorial/essential/io/check.html

관련 문제