Ich habe kürzlich alten Code zum Lesen von Daten aus Dateien ausgegraben. Es erstellt einen Eingangsstrom wie folgt aus:Gibt es die richtigen Zugriffsunterschiede zwischen diesen beiden Möglichkeiten, einen InputStream zu erstellen?
InputStream stream =
Thread.currentThread().getContextClassLoader().getResourceAsStream(filepath);
filepath
ist ein String hier. Für lokale Dateien funktionierte das gut, aber wenn ich versuchte, Dateien zu lesen, auf die ich auf einem freigegebenen Netzlaufwerk zugreifen konnte, würde ich eine Fehlermeldung erhalten, dass der Stream geschlossen wurde.
Ich habe stattdessen ein File-Objekt, und erstellt den Eingabestrom wie folgt statt:
InputStream stream = new FileInputStream(file);
Jetzt funktioniert es perfekt. Aber ich bin sehr neugierig geworden. Es wurde vorgeschlagen, als ich meine ursprüngliche Codezeile hatte, dass die Datei einfach nicht existierte. Aber das Umschalten auf die zweite Codezeile ist eindeutig. Gibt es Einschränkungen bei den Zugangsrechten mit dem ersten Ansatz? Was ist der Unterschied zwischen ihnen? Warum kann nur der zweite auf die Datei zugreifen?
Süß. Danke vielmals. Jetzt weiß ich auch was ein Hering ist;). War für eine Sekunde verwirrt. – KjetilNordin
Gern geschehen :) – StuPointerException