【发布时间】:2015-12-14 03:49:49
【问题描述】:
我有一些 word 文档和 excel 表,其中包含一些图像以及文件文本内容。我想创建该文件的副本并将其保存在特定位置。我尝试了以下在指定位置创建文件的方法,但文件已损坏且无法读取。
InputStream document = Thread.currentThread().getContextClassLoader().getResourceAsStream("upgradeworkbench/Resources/Upgrade_TD_Template.docx");
try {
OutputStream outStream = null;
Stage stage = new Stage();
stage.setTitle("Save");
byte[] buffer= new byte[document.available()];
document.read(buffer);
FileChooser fileChooser = new FileChooser();
fileChooser.setInitialFileName(initialFileName);
if (flag) {
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Microsoft Excel Worksheet", "*.xls"));
} else {
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("Microsoft Word Document", "*.docx"));
}
fileChooser.setTitle("Save File");
File file = fileChooser.showSaveDialog(stage);
if (file != null) {
outStream = new FileOutputStream(file);
outStream.write(buffer);
// IOUtils.copy(document, outStream);
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
谁能给我建议任何不同的方法来获取正确的文件。
PS:我正在使用 InputStream 读取文件,因为它位于项目 jar 中。
PPS:我也试过Files.copy(),但没用。
【问题讨论】:
-
认为这里已经讨论过了。 stackoverflow.com/questions/16433915/…
标签: java file file-io inputstream