【问题标题】:How do I read from a certain line until a certain line?如何从某行读取到某行?
【发布时间】:2017-03-06 15:03:11
【问题描述】:

例如,我想从第 20056 行到第 1159450 行读取一个文本文件并将其输出到输出窗口,但我不知道该怎么做,因为方法 line.readline() 从第一行开始。

这是我的代码:

String line;
int currentLineNo = 1;
int startLine = 20056;//40930;
int endLine = 1159450;

FileReader file = new FileReader("yourfilepath");
BufferedReader reader = new BufferedReader(file);

PrintWriter writer = new PrintWriter("yourfilepath", "UTF-8");

while (currentLineNo < startLine) {
    currentLineNo++;
}

while(currentLineNo >= startLine && currentLineNo <= endLine) {
    // System.out.println(currentLineNo);
    line = reader.readLine();

    System.out.println(line);
    // writer.println(line);
    currentLineNo++;
}

reader.close();
writer.close();

如何仅从第 20056 行到第 1159450 行打印并将其输出到输出窗口?

【问题讨论】:

标签: java bufferedreader filereader readline printwriter


【解决方案1】:
String line;
int currentLineNo = 1;
int startLine = 20056;//40930;
int endLine = 1159450;

FileReader file = new FileReader("yourfilepath");
BufferedReader reader = new BufferedReader(file);

PrintWriter writer = new PrintWriter("yourfilepath", "UTF-8");

while (currentLineNo <= endLine)
{
    line = reader.readLine();
    if(currentLineNo >= startLine && currentLineNo<=endLine) 
    {  System.out.println(line); }

    currentLineNo++;
}

reader.close();
writer.close();

【讨论】:

  • 它仍然打印第一行:/我只需要从第 20056 行到第 1159450 行打印
  • 在注释掉第一个 while 循环的情况下尝试 jays 代码。
  • 成功了!我只需要删除第一个 while 循环,非常感谢杰伊!祝你有美好的一天:D
  • 工作。谢谢spanglerb:D
  • 感谢 Jay,他完成了繁重的工作 :-) 我听说接受答案是一个很好的感谢礼物。
【解决方案2】:

(代表 OP 发布解决方案)。

我只需要删除第一个 while 循环。

String line;
    int currentLineNo = 1;
    int startLine = 20056;//40930;
    int endLine = 1159450;

    FileReader file = new FileReader("yourfilepath");
    BufferedReader reader = new BufferedReader(file);

    PrintWriter writer = new PrintWriter("yourfilepath", "UTF-8");

    while(currentLineNo<=endLine) 
    {
        line = reader.readLine();
        if(currentLineNo >= startLine && currentLineNo<=endLine) 
        {  System.out.println(line); }

        currentLineNo++;
    }

    reader.close();
    writer.close();

感谢杰·汉密尔顿。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多