我正在爲我的決賽學習,我想知道是否有一種打印文本文件中某一行數據的特殊方式。例如,如果我有一個文本文件中的以下內容:行號和文本文件Java
11
1c20
203
G2
我想知道是否有一種方法,我例如2,4輸入我會得到一個輸出1C20 203 G2。通過使用兩個整數開始和結束。我有這方法的研究,但無法找到任何東西。我知道有一個是getLineNumber(),但我想使用兩個整數。
在此先感謝!
我正在爲我的決賽學習,我想知道是否有一種打印文本文件中某一行數據的特殊方式。例如,如果我有一個文本文件中的以下內容:行號和文本文件Java
11
1c20
203
G2
我想知道是否有一種方法,我例如2,4輸入我會得到一個輸出1C20 203 G2。通過使用兩個整數開始和結束。我有這方法的研究,但無法找到任何東西。我知道有一個是getLineNumber(),但我想使用兩個整數。
在此先感謝!
下面是一個選項(使用指針):
start
和end
BufferedReader#readLine
每一行,增加櫃檯的每一行end
時,從循環中斷開。你可能想看看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-23 18:52:05
看到上面的修訂。 – cadizm 2012-04-23 21:28:52
假設你的文件命名爲data.txt,您可以使用sed來顯示第3至第5行,如下所示:
$> sed -n'3,5p'data.txt
這會很容易與sed ... – jahroy 2012-04-23 18:50:49