java - 比较Java中pdf的内容
问题描述
我正在编写 Java 单元测试,并希望将生成的 pdf 的内容与保存为资源的内容进行比较。我以为我可以将两者的内容读入字节数组并进行比较,但我无法让字节数组匹配。
我尝试比较两个 pdf,其中一个是另一个的副本,但仍然没有骰子,即使我设置了两个 pdf 的 createTime、lastModifiedTime 和 lastAccessTime。
使用diff checker后,我认为问题在于我如何在代码中设置元数据。在我的笔记本电脑上,我试图比较的两个文件中的 createTime、modifiedTime 等都是相同的,但在差异检查器中,唯一的区别是更新时间和创建时间,它们尚未从初始值更新。
有谁知道如何在不考虑元数据的情况下比较二进制文件的内容?
这是我的代码,供参考
File actualFile = new File("/tmp/" + pdfName);
Files.setLastModifiedTime(actualFile.toPath(), FileTime.fromMillis(testDateInMillis));
Files.setAttribute(actualFile.toPath(), "creationTime", FileTime.fromMillis(testDateInMillis));
Files.setAttribute(actualFile.toPath(), "lastAccessTime", FileTime.fromMillis(testDateInMillis));
File expectedFile = new File("src/test/resources/test-pdfs/" + pdfName);
Files.setAttribute(expectedFile.toPath(), "creationTime", FileTime.fromMillis(testDateInMillis));
Files.setAttribute(expectedFile.toPath(), "lastAccessTime", FileTime.fromMillis(testDateInMillis));
Files.setLastModifiedTime(expectedFile.toPath(), FileTime.fromMillis(testDateInMillis));
byte[] filebytes = Files.readAllBytes(expectedFile.toPath());
byte[] filebytes2 = Files.readAllBytes(actualFile.toPath());
Assertions.assertEquals(filebytes, filebytes2);
解决方案
推荐阅读
- json - 如何使用角度以特殊字符开头的键打印 JSON 值?
- javascript - 我正在做一个性格测验,我需要一个随机的问题
- c# - C# Trim() 在我的一个项目中不起作用
- django - 如何根据 Django 中传递的路径在 Class-Base-View 中创建逻辑模板和模型
- android - 从与 google play 不同的存储库安装更新
- node.js - Node.js 应用程序在本地工作,但在部署到 Docker 容器时无法工作
- python - 在 Python 中的时间范围内重新采样
- node.js - “错误:9 FAILED_PRECONDITION:找不到匹配的索引。” 查询一处房产
- plotly - 为什么我的绘图图像无法在 dash 应用程序上正确显示
- android - xamarin android中的Webview html音频播放器