3

我正在为我的期末考试而学习,我想知道是否有一种特殊的方式可以打印出文本文件中一行的数据。例如,如果我在文本文件中有以下内容:

11 
1c20 
203 
G2 

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

提前致谢!

4

3 回答 3

3

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

  1. 读取输入并将它们存储在两个变量startend
  2. 使用 读取每一行BufferedReader#readLine,增加每行的计数器
  3. 如果行号在范围内,则打印该行。
  4. 当计数器到达end时,从循环中中断。
于 2012-04-23T18:46:15.253 回答
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();
        }
    }
}
于 2012-04-23T18:50:19.783 回答
0

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

$> sed -n '3,5p' data.txt

于 2012-04-23T19:08:00.397 回答