行号和文本文件Java

时间:2012-04-23 18:43:32

标签: java

我正在为我的决赛而学习,我想知道是否有一种特定的方式来打印文本文件中的一行数据。例如,如果我在文本文件中有以下内容:

11 
1c20 
203 
G2 

我想知道是否有一种方式我输入例如2,4我会得到输出1c20 203 G2。通过使用两个整数开始和结束。我有研究这种方法,但无法找到任何东西。我知道有一个是getLineNumber()但我想使用两个整数。

提前致谢!

3 个答案:

答案 0 :(得分:3)

这是一个选项(带指针):

  1. Read the inputs并将它们存储在两个变量startend
  2. 使用BufferedReader#readLine读取每一行,增加每行的计数器
  3. 如果行号在范围内,请打印该行。
  4. 当计数器到达end时,从循环中断。

答案 1 :(得分:2)

您可能需要查看java.io.LineNumberReader:http://docs.oracle.com/javase/6/docs/api/java/io/LineNumberReader.html

请注意,行号从0开始

试试这个:

import java.io.*;

/*
 * Usage: java LinePrinter <start> <end>
 * Example: java LinePrinter 2 4
 */
public class LinePrinter
{
    public static void main(String[] args)
    {
        int start = Integer.parseInt(args[0]);
        int end = Integer.parseInt(args[1]);

        LineNumberReader reader = null;
        String line = null;
        boolean flag = false;

        try
        {
            reader = new LineNumberReader(new FileReader("data.txt"));

            while ((line = reader.readLine()) != null)
            {
                if (reader.getLineNumber() == start)
                {
                    flag = true;
                }

                if (flag)
                {
                    System.out.println(line);
                }

                if (reader.getLineNumber() == end)
                {
                    flag = false;
                    break;
                }
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}

答案 2 :(得分:0)

假设您的文件名为data.txt,您可以使用sed来显示第3行到第5行,如下所示:

$&GT; sed -n'3,5p'data.txt