Поиск токена в файле с использованием Java - PullRequest
1 голос
/ 25 марта 2011

Я пытаюсь прочитать текстовый файл.я должен найти определенный токен "СТУДЕНТ | ПУНКТЫ |"в этом файле.затем мне нужно отбросить следующие восемь строк из этого файла и прочитать 9-ю строку, чтобы получить желаемый ввод.теперь у меня есть некоторые замешательства.какой из них использовать для чтения файла?класс сканера или буфер чтения?какой из них лучше в вопросе производительности?я также вижу использование потока данных и входного потока.так что я немного запутался.тогда что использовать, чтобы найти токен?разбор регулярных выражений или разбор токенов?я буду использовать split (), чтобы разделить строку, или использовать nextToken () для этого при разборе строки, например: «ID | Name | value |»чтобы получить имя и значение идентификатора.пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 25 марта 2011

Используйте FileUtils.readLines(File f), чтобы получить список строк в файле для повторения.Затем просто используйте line.contains("STUDENT | ITEMS |"), чтобы определить ваш матч.Пропустите следующие 8 строк в цикле.(FileUtils от commons-io)

1 голос
/ 25 марта 2011

Поскольку вы, кажется, неопытны во вводе данных в Java, возможно, лучше объяснить это немного

FileInputStream читает из файла в поток данных. Когда вы создаете файл для имени файла, он откроет файл для вас.

DataStreamReader будет считывать FileInputStream и обрабатывать кодировку, обрабатывать входную сторону и давать вам символы при чтении.

BufferedReader Помогает дать эффективность и удобство. Вместо того, чтобы читать побайтово (что связано с большими накладными расходами), он помогает справиться с чтением блоков и сохраняет каждый блок в своем буфере. Это невидимо для вас, но поможет производительности. Он также дает вам функции для чтения построчно, что очень поможет вам в вашей задаче.

Вот почему вы упаковываете файл в разные слои читателей. Я советую вам посмотреть, как использовать ArrayLists (java.util), так как они являются самоизменяющимися массивами и позволят вам легко хранить строки (как строки) построчно. Хорошая практика на будущее и простота в использовании.

Что касается поиска токенов, вы уже прочитали свои строки (построчно или сохраненные). Вы можете использовать String.contains, чтобы проверить, есть ли у строки ваш токен, или вы можете использовать indexOf, чтобы найти определенное место в строке. В любом случае, с этого момента просто пропускается нужное количество строк и отправляется 9-я строка в нужную вам функцию

1 голос
/ 25 марта 2011

Используйте FileInputStream, обернутый в InputStreamReader (для правильного кодирования), обернутый в BufferedReader (для удобства метод такие как readLine()), а затем String.contains() может проверить, содержит ли String другой String.

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