문제

파일 개체를 사용하여 FileInputStream 객체를 초기화하려고합니다. 라인에서 filenotfound 오류가 발생합니다

fis = new FileInputStream(file);

동일한 방법을 통해이 파일을 열었으므로 여러 번 재성분을하기 때문에이 파일을 열었 기 때문에 이것은 이상합니다.

내 방법은 다음과 같습니다.

private BufferedInputStream fileToBIS(File file){

    FileInputStream fis = null;
    BufferedInputStream bis =null; 
    try {
        fis = new FileInputStream(file);
        bis = new BufferedInputStream(fis);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
    return bis;
}

java.io.filenotfoundException : c : dev server tomcat6 webapps 샘플 사이트 (액세스 거부)
at java.io.fileinputstream.open (기본 메소드)
at java.io.fileInputStream. (알 수없는 출처)
at java.io.fileInputStream. (알 수없는 출처)
at Controller.scanedit Regrions.filetobis (Scanedit Regions.java:52)
at Controller.scaneditregions.tidyhtml (scaneditregions.java:38)
at Controller.scaneditregions.process (scaneditregions.java:64)
at Controller.scaneditregions.visitalldirsandfiles (scaneditgregions.java:148)
at Controller.manager.main (manager.java:10)

도움이 되었습니까?

해결책

당신이 당신의 게시물에 붙여 넣은 스택 트레이스로 판단하면 파일을 읽을 권한이 없다고 생각합니다.

파일 클래스를 사용하면 파일에서 유용한 검사를 수행 할 수 있습니다.

boolean canExecute();
boolean canRead();
boolean canWrite();
boolean exists();
boolean isFile();
boolean isDirectory();

예를 들어 : Exists () && isfile () && canread ()를 확인하고 파일을 읽을 수없는 이유에 따라 더 나은 오류 메시지를 인쇄 할 수 있습니다.

다른 팁

이것은 OS의 파일 권한 설정과 관련이 있습니다. 특정 디렉토리에 대한 액세스 권한이없는 사용자로 Java 프로세스를 시작했습니다.

(가능성이있는 순서대로)를 확인하고 싶을 수도 있습니다.

  1. 파일이 존재합니다.
  2. 파일은 디렉토리가 아닙니다.
  3. 귀하 또는 Java 프로세스에는 파일을 열 수있는 권한이 있습니다.
  4. 다른 프로세스는 파일에 잠금 장치가 없습니다 (아마도 filenotfoundException 대신 표준 ioexception을받을 수 있기 때문에 아마도 가능합니다).

Eclipse 또는 Java IDE에서 문장을 실행 중이며 Target 파일도 IDE Worksce에도 존재한다고 생각합니다. Eclipse가 동일한 작업 공간에서 대상 파일을 읽을 수 없으므로 오류가 발생합니다. 명령 프롬프트에서 코드를 실행할 수 있습니다. 예외를 통해서는 안됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top