使用Java将图片保存在特定文件夹中

时间:2013-05-31 13:23:15

标签: java save directory image fileutils

我正在尝试保存从a中提取的图像。临时文件夹中的doc文件。 我能够创建它的文件夹以及提取的图像,但我不知道如何将它们保存在文件夹中。 你能帮忙吗?

这是迄今为止所做的:

private static void documentImagesCapture(HWPFDocument doc) {
    PicturesTable picturesTable = doc.getPicturesTable();
    List<Picture> allPictures = picturesTable.getAllPictures();
    System.out.println("Number of pictures in the document: "+allPictures.size());

    if (allPictures.size()>0){

        final Path folderPath = Paths.get("src/test/resources/test-documents/");
        final Path tmpDir;

        try {
            // Create tmp folder
            tmpDir = Files.createTempDirectory(folderPath, null);
            System.out.println("This is a temporary folder: " + tmpDir);

            // Extract a Picture file
            for (Picture pic : allPictures){
                System.out.println("this is the picture that I want to save : " + pic);
                //Save pic in tmpDir???????
            }

        } catch (IOException e) {
            System.err.println(">>>>>>>>> ERROR >>>>>>>>> WordDocSplitter.documentImagesCapture()");
            e.printStackTrace();
        }
    }
}

由于


谢谢大卫!!!! 我这样解决了:

for (Picture pic : allPictures){
    File newFilePic = new File(pic.suggestFullFileName());
    pic.writeImageContent(new DataOutputStream(new FileOutputStream(newFilePic)));
    FileUtils.copyFileToDirectory(newFilePic, new File(tmpDir.toString()));
    FileUtils.forceDelete(newFilePic);
}

1 个答案:

答案 0 :(得分:1)

对Picture对象使用writeImageContent方法。文档here

  

writeImageContent

     

public void writeImageContent(java.io.OutputStream out)                          抛出java.io.IOException

     

将图片的内容字节写入指定的OutputStream。在有需要时很有用   将图片字节直接写入流,省略其表示   在内存中作为不同的字节数组。参数:out - 要写入的流   抛出:java.io.IOException - 如果发生了一些异常   写入指定的