使用Java测试文件损坏和损坏

使用Java测试文件损坏和损坏,java,file,pdf,corruption,Java,File,Pdf,Corruption,我正在考虑编写一个程序,可以测试文件的损坏和/或损坏。我更喜欢用Java编写程序 现在,对于棘手的部分,是否可以使用Java测试许多不同文件类型中的文件损坏/损坏?我主要是查看.pdf.html和.txt文件,但我担心很快会有更多文件添加到列表中。我真的不知道这是否可以写。如果Java不能做到这一点,那么可以用C来做到吗?文件总是可以被看作是Java可以读取的字节集合。如果您有一个检查损坏的算法,那么没有什么可以阻止您在Java中实现它 使用一些好的设计模式可以使支持不同的文件类型变得容易。我认

我正在考虑编写一个程序,可以测试文件的损坏和/或损坏。我更喜欢用Java编写程序


现在,对于棘手的部分,是否可以使用Java测试许多不同文件类型中的文件损坏/损坏?我主要是查看
.pdf
.html和
.txt
文件,但我担心很快会有更多文件添加到列表中。我真的不知道这是否可以写。如果Java不能做到这一点,那么可以用C来做到吗?

文件总是可以被看作是Java可以读取的字节集合。如果您有一个检查损坏的算法,那么没有什么可以阻止您在Java中实现它


使用一些好的设计模式可以使支持不同的文件类型变得容易。

我认为您必须逐个文件地使用它。比如说

  • 文本文件-确保您可以使用FileReader读取该文件
  • html-确保它是一个文本文件,并且html文件有效
  • pdf-使用pdf生成器查看您是否可以阅读pdf,并且它是否有效
但是正如alex所建议的,如果用java实现这一点并不重要。只要可以读取字节,就可以进行检查


你还必须定义腐败。如果您所说的损坏是指硬盘上的正确磁盘块,那么您可能需要一种较低级别的编程语言。如果你的意思是所有字节都代表正确的数据,那么你可以用任何语言来做

首先需要定义“腐败”。如果您可以假设一个文件状态良好,只要您能够打开它,读取它的内容,确认它的文件权限,并确认它不是空的,那么通过java io API在java中是可行的

如果您对有效文件的定义包含更多规则,例如HTML文件需要采用有效的XML格式,PDF文件需要正确/完整,那么您的程序将根据您的需求变得更加有趣。对于PDF,您可以使用iText读取它们并获取它们的元数据:


Acrobat具有一些相当强大的修复功能,因此它可以修复并打开许多损坏的文件。规范的解释也相当松散(例如TT字体应该是MAC编码的,但实际上是WIN编码的)