У меня есть апплет, который должен загружать сохраненные данные из локального текстового файла, который находится в пакете eclipse с файлами .java. Для использования в этих вопросах его имя «saveData.txt».
Когда я запускаю апплет через Eclipse, все работает отлично. Тем не менее, как только я собрал его (убедившись, что файл txt и файлы .classpath включены) и поместил на веб-сайт, апплет не загружается. Я получаю сообщение об ошибке неизвестного источника на моем InputStreamReader. Я включил свой код для загрузки и сохранения ниже. Ошибка возникает при создании строки InputStreamReader.
Есть идеи, где я облажался?
<pre>
private ArrayList loadLocations() throws IOException{
ArrayList locations = new ArrayList();
InputStream is = getClass().getResourceAsStream("\saveData.txt");</p>
<pre><code> ;; 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 Plug-in 1.6.0_24
Using JRE version 1.6.0_24-b07 Java HotSpot(TM) Client VM
User home directory = C:\Users\Ross
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
q: hide console
r: reload policy configuration
s: dump system and deployment properties
t: dump thread list
v: dump thread stack
x: clear classloader cache
0-5: set trace level to
----------------------------------------------------
java.lang.reflect.InvocationTargetException
at com.sun.deploy.util.DeployAWTUtil.invokeAndWait(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.runOnEDT(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at java.io.Reader.(Unknown Source)
at java.io.InputStreamReader.(Unknown Source)
at listings.listings.loadLocations(listings.java:624)
at listings.listings.setup(listings.java:667)
at listings.listings.(listings.java:59)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception: java.lang.reflect.InvocationTargetException