getResourceAsStream работает в eclipse, но не при запуске в браузере как апплет
У меня есть апплет, который должен загрузить сохраненные данные из локального текстового файла, который находится в пакете eclipse с файлами.java. Для использования в этих вопросах его имя "saveData.txt".
Когда я запускаю апплет через Eclipse, все работает отлично. Тем не менее, как только я собрал его (убедившись, что файл txt и файлы.classpath включены) и поместил на веб-сайт, апплет не загружается. Я получаю сообщение об ошибке неизвестного источника на моем InputStreamReader. Я включил свой код для загрузки и сохранения ниже. Ошибка возникает при создании строки InputStreamReader.
Любые идеи, где я облажался?
private ArrayList loadLocations() throws IOException{
ArrayList locations = new ArrayList();
InputStream is = getClass().getResourceAsStream("\saveData.txt");
;; BELOW LINE is where exception is thrown InputStreamReader isr = new InputStreamReader(is); mInputStream = new BufferedReader(isr); String line = mInputStream.readLine(); while (line != null && !(line.equals(""))) { locations.add(new Location(line)); line = mInputStream.readLine(); } if (mInputStream != null) mInputStream.close(); Collections.sort(locations); return locations; } private void saveLocations() throws IOException { try { mOutputStream = new PrintWriter(new File(getClass().getResource("\\saveData.txt").toURI())); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } ; for (Location l : locations) { mOutputStream.print(l.getRawListing()+ "\n"); } if (mOutputStream != null) mOutputStream.close(); }
Полная информация об ошибке (при запуске в браузере)
Подключаемый модуль Java 1.6.0_24 Использование JRE версии 1.6.0_24-b07 Java HotSpot(TM) Клиент VM VM Домашний каталог пользователя = C:\Users\Ross ---------------------------------------------------- c: очистить консольное окно f: завершить объекты в очереди завершения g: сборщик мусора h: отобразить это справочное сообщение l: список загрузчика классов дампа m: использование памяти для печати o: запись в журнал триггера q: скрыть консоль r: конфигурация политики перезагрузки s: параметры системы и развертывания дампа t: список потоков дампа v: стек потока дампа x: очистить загрузчик классов кэш 0-5: установить уровень трассировки ---------------------------------------------------- java.lang.reflect.InvocationTargetException at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(неизвестный источник) в sun.plugin2.applet.Plugin2Manager.runOnEDT(неизвестный источник) в sun.plugin2.applet.Plugin2Manager.createApplet(Неизвестный источник) по адресу sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Неизвестный источник) по адресу java.lang.Thread.run(Неизвестный источник). Вызвано: java.lang.NullPointerException.io.Reade (Неизвестный источник) на java.io.InputStreamReader.(Неизвестный источник) на lists.listings.loadLocations(lists.java:624) на lists.listings.setup (lists.java:667) на листингов.listings (списки.java:59) в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(неизвестный источник) в sun.reflect.DelegatingConstructorAccessorImpl.newInstance(неизвестный источник) newInstance (неизвестный источник) в java.lang.Class.newInstance0(неизвестный источник) в java.lang.Class.newInstance(неизвестный источник) в sun.plugin2.applet.Plugin2Manager$12.run(неизвестный источник) в java.awt.event.InvocationEvent.dispatch(Неизвестный источник) в java.awt.EventQueue.dispatchEventImpl(Неизвестный источник) в java.awt.EventQueue.access$000(Неизвестный источник) в java.awt.EventQueue$1.run(Неизвестный источник) в java.awt.EventQueue$1.run(неизвестный источник) в java.security.AccessController.doPrivileged(собственный метод) в java.security.AccessControlContext$1.doIntersectionPrivilege(Неизвестный источник) в java.awt.EventQueue.dispatchEvent(Неизвестный источник) в java.awt.EventDispatchThread.pumpOneEventForFilters(Неизвестный источник) в java.awt.EventDispatchThread.pumpEventsawis. pumpEventsForHierarchy(Неизвестный источник) в java.awt.EventDispatchThread.pumpEvents(Неизвестный источник) в java.awt.EventDispatchThread.pumpEvents(Неизвестный источник) в java.awt.EventDispatchThread.run(Неизвестный источник) Исключение: java.targe.lang