Использование Java для проверки файлов на повреждение и повреждение - PullRequest
0 голосов
/ 21 июля 2011

Я смотрю на написание программы, которая может проверять файлы на наличие повреждений и / или повреждений.Я бы предпочел написать программу на Java.

Теперь, что касается хитрости, возможно ли использовать Java для проверки на повреждение / повреждение файлов во многих различных типах файлов?Я в основном проверяю файлы .pdf .html и .txt, но боюсь, что в ближайшее время в список можно будет добавить больше файлов.Я, честно говоря, понятия не имею, можно ли вообще это написать или нет.Если Java не может сделать это, возможно ли сделать это с помощью C?

Ответы [ 4 ]

1 голос
/ 21 июля 2011

Я думаю, вам придется принимать это файл за файлом.Например,

  • текстовые файлы - убедитесь, что вы можете прочитать файл с помощью FileReader
  • html - убедитесь, что это текстовый файл И что файл HTML действителен
  • pdf - используйте генератор pdf, чтобы увидеть, можете ли вы прочитать pdf, и он действителен

Но, как подсказывает Алекс, это не имеет значения, если вы делаете это в Java.Пока вы можете читать байты, вы можете проверять.

Вы также должны определить повреждение.Если под повреждением вы подразумеваете правильные блоки на жестком диске, то вам может потребоваться язык программирования более низкого уровня.Если вы имеете в виду, что все байты представляют правильные данные, то вы можете сделать это на любом языке.

1 голос
/ 21 июля 2011

Сначала нужно определить «коррупция». Если вы можете предположить, что файл находится в хорошей форме, если вы можете открыть его, прочитать его содержимое, подтвердить права доступа к файлу и подтвердить, что он не пустой, это можно сделать в java через API java io.

Если ваше определение действительного файла включает в себя больше правил, например, HTML-файлы должны быть в правильной XML-форме, а PDF-файлы должны быть правильными / полными, то ваша программа станет более интересной в зависимости от ваших требований. Для PDF-файлов вы можете использовать iText, чтобы прочитать их и получить их метаданные:

http://itextpdf.com/

0 голосов
/ 21 июля 2011

Acrobat имеет довольно мощные возможности восстановления, поэтому он восстанавливает и открывает много испорченных файлов. Спецификация также довольно свободно интерпретируется (например, предполагается, что шрифты TT должны быть закодированы MAC, но на практике работает кодирование WIN).

0 голосов
/ 21 июля 2011

Файлы всегда можно рассматривать как набор байтов, которые может читать Java. Если у вас есть алгоритм проверки на наличие повреждений, ничто не мешает вам реализовать его на Java.

А использование хороших шаблонов проектирования позволяет легко поддерживать файлы разных типов.

...