2011-08-11 2 views
0

안녕하세요이 명령을 실행해야한다 : 내가 직접하려고하면액세스 권한

java.io.FileNotFoundException: /.../IeplcDeployRules.clx (Permission denied) 

: 나는 다음과 같은 오류가 파서를 만들려고 할 때

docRules = DocumentBuilderFactory.newInstance() 
.newDocumentBuilder().parse(new File(IeplcDeployRules.clx)); 

을 작동하는 파일을 읽을 수 있지만 다음은 사용 권한이므로 쓰기가 불가능합니다.

-rwxr-xr-x 1 ieplcop ieplcdev 3424 Aug 11 17:16 IeplcDeployRules.clx 

Java 응용 프로그램에서만 읽을 수있는 파일 NEED 때문에 권한을 변경하고 싶지 않습니다. 거기서 파일이 읽기 전용 모드로 열리도록 지정하는 방법이있을 것입니다.

File() parse() 및 .newDocumentBuilder()의 가능한 매개 변수를 찾았지만 그 중 아무 것도 조작을 읽기 전용으로 지정할 수 없습니다!

어떻게 진행해야합니까?

건배, 인트

+0

당신이 코드를하시기 바랍니다 수정시겠습니까? 중요 할 수도 있습니다. – biziclop

+0

어떤 종류의 응용 프로그램이 이런 일이 일어나고 있습니까? 바람둥이를 사용하고 있습니까? –

+0

나는 스 니펫이 무엇인지 모른다. 죄송합니다. – Stefano

답변

4

나는 DocumentBuilder 내부적으로 무엇을하는지 모른다, 나는 소스를 읽을해야합니다. 그러나 File 대신 다른 InputSource을 사용할 수 있으므로 사용자가 모든 권한을 가질 수 있습니다. 예 : FileReader.

documentBuilder.parse(new InputSource(new FileReader(...)); 
+0

나는 tryed하지만 그런 개체에 구문 분석을 적용 할 수 없습니다! 파일이나 inputSource 만 허용됩니다! – Stefano

+0

그래,하지만 InputSource는 래퍼 일 뿐이야. 예제를 추가했다. –

0

당신은 대신 Fileparse 방법에 InputStream을 통과해야한다. 예를 들어

:

docRules = DocumentBuilderFactory.newInstance() 
    .newDocumentBuilder().parse(new FileInputStream(new File("IeplcDeployRules.clx")));