3

私は最終試験に向けて勉強していますが、テキスト ファイル内の行のデータを出力する特定の方法があるかどうか疑問に思っています。たとえば、テキストファイルに次のものがあったとします。

11 
1c20 
203 
G2 

たとえば 2 ,4 を入力すると、出力 1c20 203 G2 が得られる方法があるかどうか疑問に思っていました。start と finish の 2 つの整数を使用します。私はこの方法を研究していますが、何も見つかりません。getLineNumber() があることは理解していますが、2 つの整数を使用したいと考えています。

前もって感謝します!

4

3 に答える 3

3

ここにオプションがあります(ポインタ付き):

  1. 入力を読み取り、それらを 2 つの変数に格納し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 に答える