2 fragen zu java
-
Hi
hätt mal 2 fragen wenn ich auf System.in oder andere "Low-level" Streams einen stream z.B. Scanner aufsetze muss ich den dann wieder mit close() schliessen (frage beziehe ich jetzt mal auf System.in). Oder sollte man das vielleicht sogar gar nicht?Und noch was zu swing, wenn ich die Anwendung beenden möchte und einfach nur System.exit() aufrufe sorgt die JVM dann dafür dass das Fenster korrekt abgebaut wird, oder sollte ich vorher dispose aufrufen?
Danke im vorraus
-
Bei deiner ersten Frage weiß ich nicht so recht, was du meinst. Schau doch einfach in die JAVA-API, was close() genau macht. Beim InputStream z.B. garnichts:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/InputStream.html#close()Zur zweiten Frage schau dir mal folgenden Link an:
http://www.knowscore.de/javacd/doc/javainsel4/javainsel_15_001.htm#Rxx365java15001040005381F042100 (Den Unterpunkt: Der Unterschied zwischen windowClosing() und windowClosed()). Der Aufruf von dispose() gibt also alle Ressourcen frei und schließt das Fenster. Die Applikation ist so allerdings noch nicht beendet. System.exit() gibt ebenfalls alle Ressourcen frei und schließt die Fenster, aber das Programm ist im Gegensatz zu dispose() wirklich beendet.
-
ich meine wenn man einen InputStream öffnet und im Konstruktor System.in angibt
InputStream i=new InputStream(System.in); i.close(); // ich meinte ob man das braucht
weil man ja System.in auch nicht schließt.
wusste nicht ob System.exit() auch das Fenster korrekt abbaut weil ja unter windows auch ein PostQuitMessage und destroywindow nötig ist