Каков наилучший (наименее влиятельный?) Метод для чтения файла, который записывается другим процессом? - PullRequest
1 голос
/ 13 января 2009

Я ищу наименее эффективный способ чтения нескольких разных файлов журнала. Под «наименьшим влиянием» я подразумеваю, что чтение не повлияет на ротацию журналов, не вызовет неоправданной активности ввода-вывода и т. Д. Я хочу добиться этого с помощью Java ...

Google предоставил мне следующий небольшой фрагмент кода:

FileStream fs = new FileStream("C:\foo.txt",
FileMode.Open,FileAccess.Read, FileShare.ReadWrite);

Это должно быть несложно реализовать, но я не слишком уверен в своих возможностях Java "вырезать и вставить" и хотел бы знать, есть ли гораздо лучший способ сделать это. Общая картина здесь состоит в том, чтобы просмотреть некоторые журналы apache и tomcat, ища несколько ключевых записей, основанных на активности приложения, и предпринять некоторые действия, основанные на записи. Во всяком случае, какие-либо советы? Спасибо!

1 Ответ

1 голос
/ 13 января 2009

Выберите один из здесь

:)

Я не пробовал их все, но есть несколько полезных комментариев от Джона Скита о том, как этого не делать.

Моя ставка будет на nio один.

 FileInputStream stream = new FileInputStream(new File(path));
  try {
    FileChannel fc = stream.getChannel();
    MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
    /* Instead of using default, pass in a decoder. */
    return CharSet.defaultCharset().decode(bb).toString();
  }
  finally {
    stream.close();
  }

См. Подробности в этом вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...