파일 개체로 fileInputStream을 초기화 할 때 filenotFoundException을 얻습니다
-
14-09-2019 - |
문제
파일 개체를 사용하여 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 프로세스를 시작했습니다.
(가능성이있는 순서대로)를 확인하고 싶을 수도 있습니다.
- 파일이 존재합니다.
- 파일은 디렉토리가 아닙니다.
- 귀하 또는 Java 프로세스에는 파일을 열 수있는 권한이 있습니다.
- 다른 프로세스는 파일에 잠금 장치가 없습니다 (아마도 filenotfoundException 대신 표준 ioexception을받을 수 있기 때문에 아마도 가능합니다).
Eclipse 또는 Java IDE에서 문장을 실행 중이며 Target 파일도 IDE Worksce에도 존재한다고 생각합니다. Eclipse가 동일한 작업 공간에서 대상 파일을 읽을 수 없으므로 오류가 발생합니다. 명령 프롬프트에서 코드를 실행할 수 있습니다. 예외를 통해서는 안됩니다.