2009-02-22 6 views
1

Привет, я хочу прочитать файл, который лежит на сервере. я получить путь к файлу с помощью параметрачитать файл в апплете

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

, когда я теперь запустить апплет следующее сообщение об ошибке

Вызванный: java.lang.IllegalArgumentException: схема 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-адрес, который вы передаете апплету. –

ответ

1

Вы пытаетесь открыть как файл, что не следует за файлом: // uri, как показывает ошибка.

Если вы хотите использовать URL-адрес, я предлагаю вам использовать url.openStream(), который должен быть проще.

+0

ok я сделал это, обратившись к файлу как к ressource, теперь он работает :) –

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

ok Я сделал это таким образом, в netbeans он работает, но открытие апплета в браузере не считывает данные. что здесь может быть неправильным? –

+0

java.security.AccessControlException: доступ запрещен (java.net.SocketPermission root.xelluloid.de:80 connect, resolve) , похоже, проблема безопасности? –

+0

По умолчанию апплеты и приложения WebStart могут обращаться только к серверу, с которого они были загружены (политика «того же происхождения»). Если апплет загружен из файловой системы, сетевого происхождения нет. –

1

Вам нужно будет подписать апплет, если файл не выполняется доступ из того же сервера/порт, который апплет пришел.

 Смежные вопросы

  • Нет связанных вопросов^_^