【问题标题】:How to solve Java.io.FileOutputStream is restricted class in Google App Engine [duplicate]如何解决 Java.io.FileOutputStream 是 Google App Engine 中的受限类 [重复]
【发布时间】:2023-03-04 00:58:02
【问题描述】:

我正在使用 Netbeans、谷歌应用引擎、java。当我尝试按如下方式创建 pdf 时,它会显示此错误。

Java.io.FileOutputStream 是 Google App Engine 中的受限类。

我的代码是,

Document document = new Document();

PdfWriter.getInstance(document, new BufferedOutputStream(new FileOutputStream("C:\\Examplenamaaaa.pdf")));

document.open();

PdfPTable table = new PdfPTable(2);

PdfPCell cell = new PdfPCell(new Paragraph("column span 2"));
cell.setColspan(2);

table.addCell(cell);

table.addCell("1");

table.addCell("Namita");

table.addCell("2");

table.addCell("Asmita");

document.add(table);

document.close();

【问题讨论】:

标签: java google-app-engine


【解决方案1】:

您正在编写在 C 驱动器上创建 PDF 文件的代码。虽然这可能适用于您的计算机,但可能不适用于 Google App Engine。

相反,您可以尝试将 PDF 写入ByteArrayOutputStream(例如),然后将其发送回网络浏览器,以便您能够查看生成的 PDF。

ByteArrayOutputStream 的行为与FileOutputStream 完全相同,只是字节不是写入文件,而是写入byte[](因此得名)。它们都扩展了OutputStream 接口,因此无需进一步更改代码即可切换它们。

将响应流式传输回浏览器isn't supported in GAE ,因此您可以考虑将ByteArrayOutputStream 的内容存储在BlobStore 中,以便稍后将其返回给浏览器。

【讨论】:

  • 感谢 mthmulders,但不知道如何使用 ByteArrayOutputStream。您能否分享任何示例链接。
  • 如果你想在线持久化PDF文件,你可能还想看看Google Cloud Storage
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
相关资源
最近更新 更多