Googelt man “open file” etc., geht es meistens darum, eine Datei einzulesen. In meinem konkreten Fall wollte ich sie aber öffnen, also bsplw. ein PDF im Reader. Lösung:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.awt.Desktop; import java.nio.file.Path; import java.nio.file.Paths; // ... Path path = Paths.get(System.getProperty("java.io.tmpdir"), "report.pdf"); // ... if (Desktop.isDesktopSupported()) { Desktop desktop = Desktop.getDesktop(); if (desktop.isSupported(Desktop.Action.OPEN)) { desktop.open(path.toFile()); } } |
Achtung: Eventuelle Handles müssen geschlossen werden, oder es gibt ein
There was an error opening this document. This file is already open or in use by another application.
Für einen OutputStream sieht das so aus:
1 2 3 4 5 6 7 8 9 |
OutputStream out; try { out = Files.newOutputStream(path); joinedReport.writeTo(out); } finally { if(null != out) { out.close(); } } |