如何解决Java.io.FileOutputStream是Google App Engine中的受限类

时间:2014-02-19 13:37:50

标签: java google-app-engine

我正在使用 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();

1 个答案:

答案 0 :(得分:1)

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

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

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

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