Java 行号和文本文件

Java 行号和文本文件,java,Java,我正在准备期末考试,我想知道是否有一种特殊的方法可以打印出文本文件中一行的数据。例如,如果文本文件中包含以下内容: 11 1c20 203 G2 我想知道是否有一种方法可以让我输入示例2,4,得到输出1c20 203 G2。通过使用两个整数start和finish。我已经研究过这种方法,但什么也找不到。我知道有一个是getLineNumber(),但我想使用这两个整数 提前谢谢 这里有一个选项(带指针): 并将它们存储在两个变量中start和end 使用读取每行,增加每行的计数器 如果

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

11 
1c20 
203 
G2 
我想知道是否有一种方法可以让我输入示例2,4,得到输出1c20 203 G2。通过使用两个整数start和finish。我已经研究过这种方法,但什么也找不到。我知道有一个是getLineNumber(),但我想使用这两个整数

提前谢谢

这里有一个选项(带指针):

  • 并将它们存储在两个变量中
    start
    end
  • 使用读取每行,增加每行的计数器
  • 如果行号在范围内,则打印该行
  • 当计数器到达
    结束时
    ,断开循环

  • 您可能想看看java.io.LineNumberReader:

    请注意,行号从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();
            }
        }
    }
    
    import java.io.*;
    /*
    *用法:java LinePrinter
    *示例:java LinePrinter 2 4
    */
    公共类行打印机
    {
    公共静态void main(字符串[]args)
    {
    int start=Integer.parseInt(args[0]);
    int end=Integer.parseInt(args[1]);
    LineNumberReader读取器=空;
    字符串行=null;
    布尔标志=假;
    尝试
    {
    reader=newlinenumberreader(newfilereader(“data.txt”);
    而((line=reader.readLine())!=null)
    {
    if(reader.getLineNumber()=开始)
    {
    flag=true;
    }
    国际单项体育联合会(旗)
    {
    系统输出打印项次(行);
    }
    if(reader.getLineNumber()==end)
    {
    flag=false;
    打破
    }
    }
    }
    捕获(例外e){
    e、 printStackTrace();
    }
    }
    }
    
    假设您的文件名为data.txt,您可以使用sed显示第3行到第5行,如下所示:


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

    使用sed将非常简单…谢谢,我已经看过了,但我觉得不方便。请展开,是的,我的文本名为java.txt谢谢。上面是一个如何使用sed命令执行您想要的操作的示例:打印文件的x到y行。该命令名为sed。n表示安静模式。3代表起跑线。5代表终点线。逗号分隔起始线和结束线。p表示所需的操作,在本例中为print。要使用sed命令,必须使用linux、unix或Mac。如果你使用的是愚蠢的windows,那么你必须安装Cygwin来摆脱原本无用的环境。然后你必须安装Cygwin才能使用sed命令。安装起来并不难,而且非常方便。我极力推荐。安装后,可以使用上述命令从命令行打印文件的x到y行。