Wenn beim Laden von Ressourcen eine Anwendung von einer IDE ausgeführt wird, kann der Pfad zur Ressource anders sein als bei der Ausführung eine JAR-Datei. Dies kann zu Problemen führen, wenn die Anwendung auf den spezifischen Dateipfad angewiesen ist.
Eine Möglichkeit, dieses Problem zu lösen, besteht darin, getResourceAsStream anstelle von getResource zu verwenden. getResourceAsStream gibt einen InputStream zurück, der zum Lesen der Ressourcendaten verwendet werden kann, ohne sich mit dem Dateipfad befassen zu müssen.
Eine andere Option besteht darin, die Ressource vor der Verwendung in eine temporäre Datei zu extrahieren. Dies kann mit der Methode „Files.copy“ erfolgen.
Es ist jedoch wichtig zu beachten, dass manche Codes darauf angewiesen sein können, dass sich die Daten in einer physischen einzelnen Datei im Dateisystem befinden. In diesem Fall ist das Bündeln der Ressource in einer JAR-Datei möglicherweise keine Option.
Codebeispiel:
InputStream inputStream = WinProcessor.class.getResourceAsStream("repository"); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { // Do something with the line } reader.close();
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3