我有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
“任何人都可以推荐任何东西吗?”是的:尝试一下,然后回来问一些更具体的问题 –