애플릿의 파일 읽기


1

안녕하세요, 저는 서버에있는 파일을 읽고 싶습니다. java.lang.IllegalArgumentException가 : : 지금 오류 다음 애플릿을 시작할 때 내가

에 의한 매개 변수

<PARAM name=fileToRead value="http://someserver.de/file.txt"> 

하여 파일의 경로를 발생 얻을 URI 방식이 아닌 "파일"

누군가 내게 힌트를 줄 수 있습니까?

BufferedReader file; 
         String strFile = new String(getParameter("fileToRead")); 

         URL url = new URL(strFile); 
         URI uri = url.toURI(); 
         try { 

          File theFile = new File(uri); 
          file = new BufferedReader(new FileReader(new File(uri))); 

         String input = ""; 

          while ((input = file.readLine()) != null) { 
           words.add(input); 
          } 
         } catch (IOException ex) { 
          Logger.getLogger(Hedgeman.class.getName()).log(Level.SEVERE, null, ex); 
         } 
  0

일부 코드와 애플릿에 제공하는 URL을 표시하십시오. 22 feb. 092009-02-22 10:00:36

1

오류가 예상하는대로 file : //uri 다음에 나오지 않는 파일로 열려고합니다.

URL을 사용하려면 간단해야하는 url.openStream()을 사용하는 것이 좋습니다.

  0

그래, 난 ressource로 파일에 액세스하여, 지금은 작동합니다 :) 22 feb. 092009-02-22 11:33:55


3
File theFile = new File(uri); 

은 올바른 방법이 아닙니다. 파일이 아닌 URL에 액세스하고 있습니다.

코드는 다음과 같아야합니다

try 
{ 
URL url = new URL(strFile); 
InputStream in = url.openStream(); 
(... read file...) 
in.close(); 
} catch(IOException err) 
{ 
(... process error...) 
} 
  0

오케이 내가 넷빈에서 작동하지만 브라우저에서 애플릿을 여는 것은 데이터를 읽지 않습니다 이런 식으로 해냈어. 여기서 무엇이 잘못 될 수 있습니까? 22 feb. 092009-02-22 10:11:49

  0

java.security.AccessControlException : 액세스가 거부되었습니다. (java.net.SocketPermission root.xelluloid.de:80 connect, resolve) 보안 문제가있는 것 같습니까? 22 feb. 092009-02-22 10:16:58

  0

기본적으로 애플릿 및 WebStart 응용 프로그램은 다운로드 한 서버 ("동일한 출처"정책)에만 액세스 할 수 있습니다. 파일 시스템에서 애플릿을로드하면 네트워크가 시작되지 않습니다. 22 feb. 092009-02-22 11:18:16

  0

BTW : 그게 마지막이어야합니다 InputStream = url.openStream(); try {(... read file ...)} finally {in.close(); } 22 feb. 092009-02-22 11:19:46

  0

JAR로 패키징 한 다음 서명하여 해당 정책을 해결할 수 있습니다. 사용자는 애플릿에 대한 확장 액세스를 허용해야하는 확인 대화 상자를 표시합니다 (신뢰). 나중에 모든 파일 시스템에 액세스하여 모든 서버에 대한 연결을 열 수 있습니다. 22 feb. 092009-02-22 17:36:59

  0

파일을 ressource로 만들었으므로 서명 할 때 보안 메시지없이 finde를 사용했습니다.)하지만 모두에게 감사드립니다. 25 feb. 092009-02-25 08:09:39


1

당신은 파일이 애플릿에서 온 동일한 서버/포트에서 액세스되지 않는 한 애플릿에 서명해야합니다.