Читать двоичный файл в обратном направлении - PullRequest
0 голосов
/ 31 января 2011

Что мне нужно сделать, это прочитать файл в обратном направлении.То, что я хотел бы сделать, это прочитать файл в обратном направлении, а затем переместиться в обратном направлении, посмотреть, если значение = G или в шестнадцатеричном формате 47, затем посмотреть, если следующее значение = N, или в шестнадцатеричном 4E, а затем посмотреть, если следующее значение = PВ настоящее время я использую двоичный ввод-вывод для чтения, а затем использую ...

Вот ссылка на изображение, которое лучше покажет, что я имею в виду .. http://www.facebook.com/photo.php?pid=2189508&l=92393dfccb&id=1283154964

  String s = Integer.toHexString(hexIn);
  if(s.length() < 2){
   s = "0" + Integer.toHexString(hexIn);
  }

Чтобы гекс не пропустил ни одного нуля на конце (который я нашел на этом сайте ::)

Ответы [ 3 ]

1 голос
/ 31 января 2011

Вместо того, чтобы читать файл в обратном направлении и искать вашу строку, почему бы вам просто не перевернуть вашу строку и не найти ее в файле, идущем вперед? Это может показаться более простым решением?

0 голосов
/ 31 января 2011

RandomAccessFile будет самым простым классом для чтения файла в обратном направлении.

0 голосов
/ 31 января 2011

Как вы можете себе представить, чтение в обратном направлении - это не обычное дело, и вам придется сделать что-то странное.

Но вы можете поместить индекс в файл самостоятельно.Если вы это сделаете, поместите его в конец, прочитаете байт, затем поместите его в (конец-1), прочитаете байт и т. Д., У вас все получится.

Это будет ужасно медленно,поэтому то, что вы делаете, читает как можно больше в буфер, начиная с конца, затем проходит через буфер назад, затем снова заполняет буфер.

Этот урок расскажет вам все оОперации ввода-вывода с произвольным доступом в Java.

...