通过java.io创建pdf

时间:2012-03-13 07:49:53

标签: java

我尝试使用java.io从另一个(在我的本地驱动器中)创建一个pdf文件。东西是一个创建了.pdf扩展名的文件但是我无法打开文件,它说文件已经在使用,最重要的是文件的大小太大而且它一直在增加(原始文件大小:5,777) KB和新创建的文件大小截至目前为38,567kB)。我不是那么多熟练的java程序员,但如果有人能给我解释,我仍然会很感激..

String path = "D:\\priya_Docs\\Android pdfs\\Professional_Android_Application_Development.pdf";
        File file = new File(path);
        System.out.println("Located a file " + file.isFile());
        String filesArray = file.getPath();
        File getFile = file.getAbsoluteFile();
        FileInputStream fis = new FileInputStream(getFile);
        FileOutputStream fos = new FileOutputStream(
                "D:\\priya_Docs\\Androiddoc.pdf");
        for (int b = fis.read(); b != -1;) {
            fos.write(b);
        }

2 个答案:

答案 0 :(得分:2)

简单使用,

FileUtils.copyFile()

答案 1 :(得分:0)

你遇到了两个问题 首先,你必须关闭资源:fis和fos,或者说它已经在使用的文件 第二,你必须使用byte []来接收数据,因为pdf文件是按字节数组织的

            String path = "D:\\priya_Docs\\Android pdfs\\Professional_Android_Application_Development.pdf";
    File file = new File(path);
    System.out.println("Located a file " + file.isFile());
    String filesArray = file.getPath();
    File getFile = file.getAbsoluteFile();
    FileInputStream fis = new FileInputStream(getFile);
    FileOutputStream fos = new FileOutputStream(
            "D:\\priya_Docs\\Androiddoc.pdf");
    byte[] buff=new byte[1024];
    int len;
    while((len=fis.read(buff))>=0) {
        fos.write(buff,0,len);
    }

    fis.close();
    fos.close();