vendredi 13 mars 2015

PDF-Datei aus JAR-Archiv in Dateisystem kopieren

Hallo,

ich möchte gern mit meinem Programm zusammen (Jar-Archiv) ein Handbuch (pdf-Datei) ausliefern, welches sich über F1-Taste öffnet. Dass man diese pdf-Datei nicht direkt mit

Code:



Desktop.getDesktop().open()


öffnen kann habe ich schon gelernt.



Als Lösung habe ich erfahren, dass man die Datei einfach aus dem Jar-Archiv befreien und sie ins normale Dateisystem (z. B. Temp-Verzeichnis) bringen muss. Soweit so gut. Nun habe ich die wildesten Code-Beispiele gesehen, wie dies erfolgen könnte (über Streams teils gepuffert usw.).



Ich wollte nicht wahr haben, dass dafür so ein "Aufwand" betrieben werden muss und habe eine schlichte Lösung programmiert.

Java Code:






  1. URL url = getClass().getResource("/de/package/hlp/Benutzerhandbuch.pdf");



  2. Path copyTargetPath = Paths.get(System .getProperty("java.io.tmpdir") + "/Benutzerhandbuch.pdf");



  3. Path copySourcePath = null;



  4. if (!Files.exists(copyTargetPath)) {



  5. try {



  6. copySourcePath = Paths.get(url.toURI());



  7. Files.copy(copySourcePath, copyTargetPath);



  8. } catch (URISyntaxException | IOException ex) {



  9. System .out.println("Konnte Benutzerhandbuch nicht kopieren.");



  10. }



  11. }



  12. try {



  13. Desktop.getDesktop().open(copyTargetPath.toFile());



  14. } catch (IOException ex) {



  15. System .out.println("Konnte Benutzerhandbuch nicht öffnen.");



  16. }









Jetzt die Frage: Ist diese Lösung nicht optimal oder was würdet ihr anders machen (und warum)?





PDF-Datei aus JAR-Archiv in Dateisystem kopieren

0 commentaires:

Enregistrer un commentaire