我有3個文本文件,都包含來自對象的字符串。按行號檢索字符串? Java
我有一個用一個文本文件的內容填充的列表的GUI。我目前正在尋找實現的東西,將採取第一個文件的行號,並從其他文件中的相同行號拉出字符串。誰能推薦任何東西
我有3個文本文件,都包含來自對象的字符串。按行號檢索字符串? Java
我有一個用一個文本文件的內容填充的列表的GUI。我目前正在尋找實現的東西,將採取第一個文件的行號,並從其他文件中的相同行號拉出字符串。誰能推薦任何東西
您可以使用:
String[] lines = secondFileText.split("\n");
P.s.-如果不行嘗試\ r \ n替換\ n。
您可以將一個字符串分解成線:
System.out.println(lines[0]); // The array starts at 0
注:在Windows上,截至線的標準是使用
String[] lines = s.split("\r?\n");
然後你就可以在任何索引來訪問行回車後跟一個換行符(CRLF)。在Linux上,規範只是LF。正則表達式"\r?\n"
適用於這兩種情況 - 它匹配零個或一個("?"
)回車符("\r"
),後跟換行符("\n"
)。
的BufferedReader將,將不適合於存儲大型文件處理好,這是相當快,處理從一開始就閱讀這兩個\ r和\ n
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class ReadByLine {
/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
File f = new File("xyz.txt");
int lineNumber = 666;
BufferedReader br = new BufferedReader(new FileReader(f));
String line = null;
int count = -1;
try {
while((line = br.readLine())!=null){
count++;
if (count == lineNumber){
//get the line, do what you want
break;
}
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
br.close();
} catch (IOException e) {
br = null;
}
}
//do what you want with the line
}
}
和計算行。或者使用某種塗料載體方案。或者在文本中嵌入行號並使用二進制搜索。 –
我推薦BufferedReader – Leo
「任何人都可以推薦任何東西嗎?」是的:嘗試一下,然後回來問一些更具體的問題 –