BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(pdftargetpath))); com.itextpdf.text.pdf.PdfReader reader = new com.itextpdf.text.pdf.PdfReader(pdfsourcepath); com.itextpdf.text.pdf.PdfStamper stamper = new com.itextpdf.text.pdf.PdfStamper(reader, bos); 代码是干嘛得
时间: 2024-04-05 11:29:55 浏览: 21
这段代码是用来在一个已有的PDF文件中添加水印的。首先,它创建了一个新的缓冲输出流 BufferedOutputStream,并将其与一个目标 PDF 文件绑定。然后,它使用 iTextPDF 库中的 PdfReader 类来读取源 PDF 文件并将其与缓冲输出流一起传递给 PdfStamper 类。最后,可以使用 PdfStamper 类的方法向 PDF 文件中添加文本或图像水印。在添加完所有水印后,需要关闭 PdfStamper 对象来完成 PDF 文件的保存和关闭。
相关问题
OutputStream outputStream = new FileOutputStream(savePath); outputStream.write(pdfBytes); 如何查看写入了多少字节
在使用OutputStream将数据写入文件时,您可以调用write方法来将字节写入流中。每次调用write方法时,它将写入一个字节数组,返回值是void类型,表示写入操作是否成功。如果您想知道已经写入了多少字节,可以使用字节数组的length属性来获得写入的字节数。
另外,您可以使用Java IO库中的BufferedOutputStream类来缓存输出。BufferedOutputStream类具有一个内部缓冲区,可以减少实际写入文件的次数,提高性能。当缓冲区已满或调用flush()方法时,BufferedOutputStream将写入缓冲区中的所有数据到底层输出流中。
示例代码:
```
OutputStream outputStream = new FileOutputStream(savePath);
BufferedOutputStream bos = new BufferedOutputStream(outputStream);
bos.write(pdfBytes);
bos.flush();
System.out.println("已写入 " + pdfBytes.length + " 字节");
```
在这个示例中,我们使用了BufferedOutputStream来缓存输出,并在写入完成后调用了flush()方法,以确保所有数据都被写入文件。然后,我们使用pdfBytes数组的length属性来打印写入的字节数。
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(String.valueOf(Text.class.getResourceAsStream("贪吃蛇游戏/null.txt")))); if (GamePanel.score > score) { score = GamePanel.score; String s1 = String.valueOf(score); bos.write(s1.getBytes()); }
此代码片段会将游戏得分写入到一个名为 "null.txt" 的文件中。但是,使用 `Text.class.getResourceAsStream()` 方法获取资源流时,应该传入相对路径,而非绝对路径。在此情况下,应该使用 `Text.class.getResourceAsStream("/null.txt")`。另外,由于 BufferedOutputStream 是一个缓冲流,需要使用 `bos.flush()` 方法来确保缓冲区中的所有数据都被写入到文件中。最后,当使用完 BufferedOutputStream 后,应该使用 `bos.close()` 方法关闭它以释放资源。