我正在为我的决赛而学习,我想知道是否有一种特定的方式来打印文本文件中的一行数据。例如,如果我在文本文件中有以下内容:
11
1c20
203
G2
我想知道是否有一种方式我输入例如2,4我会得到输出1c20 203 G2。通过使用两个整数开始和结束。我有研究这种方法,但无法找到任何东西。我知道有一个是getLineNumber()但我想使用两个整数。
提前致谢!
答案 0 :(得分:3)
这是一个选项(带指针):
start
和end
BufferedReader#readLine
读取每一行,增加每行的计数器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