我编写了一小段代码来使用 openpdf 进行一些 pdf 加密,而 intellij 的 sonarlint 抱怨“资源应该关闭”更多详细信息请参见这里
不合规
下面的示例 java 代码
public class passwordprotectedpdf { private static final logger logger = logger.getlogger(passwordprotectedpdf.class.getname()); static final string user_password = "111"; static final string owner_password = "111"; public static void main(string[] args) { try { file f = new file("1_protected.pdf"); fileoutputstream out = new fileoutputstream(f); file pdffile = new file("1.pdf"); pdfreader reader = new pdfreader(pdffile.getpath()); pdfstamper stamper = new pdfstamper(reader, out); hashmap<string string> info = new hashmap(); info.put("producer", ""); reader.getinfo().foreach((key, value) -> { logger.info("key: " + key + ", value: " + value); }); stamper.setinfodictionary(info); stamper.setencryption(user_password.getbytes(), owner_password.getbytes(), pdfwriter.allow_printing, pdfwriter.encryption_aes_128); stamper.close(); logger.info("password protected pdf created successfully."); } catch (ioexception e) { logger.severe("error creating password protected pdf: " + e.getmessage()); } } } </string>
登录后复制
合规
public class passwordprotectedpdf { private static final logger logger = logger.getlogger(passwordprotectedpdf.class.getname()); static final string user_password = "111"; static final string owner_password = "111"; public static void main(string[] args) { try ( fileoutputstream out = new fileoutputstream(new file("1_protected.pdf")); pdfreader reader = new pdfreader(new file("1.pdf").getpath()) ) { pdfstamper stamper = new pdfstamper(reader, out); hashmap<string string> info = new hashmap(); info.put("producer", ""); reader.getinfo().foreach((key, value) -> { logger.info("key: " + key + ", value: " + value); }); stamper.setinfodictionary(info); stamper.setencryption(user_password.getbytes(), owner_password.getbytes(), pdfwriter.allow_printing, pdfwriter.encryption_aes_128); stamper.close(); logger.info("password protected pdf created successfully."); } catch (ioexception e) { logger.severe("error creating password protected pdf: " + e.getmessage()); } } } </string>
登录后复制
只是提醒我们可以在 try 块中定义多个资源
try ( FileOutputStream out = new FileOutputStream(new File("1_protected.pdf")); PdfReader reader = new PdfReader(new File("1.pdf").getPath()) )
登录后复制
在这里找到完整的工作示例
以上就是try中如何使用资源文件和内存的详细内容,更多请关注抖狐科技其它相关文章!
本站文章均为抖狐网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!感谢...
我们猜你喜欢
-
爱奇艺怎么登录别人的会员扫码
可以通过爱奇艺 app 扫码登录他人的会员账号,步骤如下:获取二维码:在爱奇艺 app 中点击“我的”→“设置”→“我的会员”→“扫码登录”生成二维码。扫描二维码:使用其他设备扫描步骤 1 中生成的二...
-
苹果16如何更新
要更新 apple iphone 16,请:1. 连接到 wi-fi 或蜂窝网络;2. 导航至“设置”>“通用”>“软件更新”;3. 下载并安装可用更新。完成后,iphone 将自动重启以应用新更新。...
-
华为商城怎么分期买手机啊
华为商城分期购机可通过以下步骤进行:登录华为商城官网或下载 app。选择心仪机型并点击“分期购机”。选择分期期数(3/6/12/24 期)。选择支付方式(信用卡/花呗/京东白条)。提交订单并填写收货及...
-
推动“两新”勿忘回收循环利用
大规模设备更新和消费品以旧换新行动实施后, 废旧物资激增,处理不当将造成环境污染和资源浪费。 回收循环利用体系建设是解决上述问题和推动“两新”工作的关键。 《推动大规模设备更新和消费品以旧换新行动方案...
-
检查 Effect
effect-ts 提供了检查 option 是否包含特定值的方法。这些函数允许您使用自定义等价函数或默认等价来确定选项中是否存在值。在本文中,我们将探讨检查选项中元素的两个关键函数:o.contai...