簡體   English   中英

如何在Java中按行號搜索文本文件?

[英]How to search in text file by line number in java?

我正在開發Hadoop MapReduce。 我已經創建了MapReduce程序,該程序可以為大型Apache日志執行反向索引。 MapReduce的輸出如下所示:

{"Error" {log1 {200,300,500}, log2{400,900,800..}}

{"201" {log5 {250,350,550}, log2{850,950,80..}}

{"400" {log3 {280,380,580}, log2{480,980,880..}}

在這里,我將存儲帶有倒排索引值的單詞,以及該單詞在名稱中出現在日志文件中的位置。

現在,我想編寫示例腳本/程序,通過它我可以按行號搜索日志。 我將在MarPreduce輸出上方使用。 我該如何通過Java進行操作?

示例:如果用戶在Apache日志中搜索錯誤,我將使用log1,log2並顯示200,300,400行中的記錄

BufferedReader reader;
int lineCount = 0;
int lineYouWant = 100;
reader = new BufferedReader(new InputStreamReader(new FileInputStream("sample.txt")));
while (reader.ready()) {
   String line = reader.readLine();
   lineCount++;
   if (lineCount == lineYouWant) doStuff();

使用以上內容作為起點。 您必須讀入整個文件(直到找到所需的行),因為這是“計數”行數的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM