Java 从文本文件中的某个点提取文本
Java extract text from text file from a certain point on the text
我使用 BufferedReader
创建了一个方法,该方法打开程序先前创建的文本文件并提取一些字符。我的问题是它提取了整行,我只想在指定字符 :
.
之后提取
这是我的 try/catch
块:
try {
InputStream ips = new FileInputStream("file.txt");
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br1 = new BufferedReader(ipsr);
String ligne;
while((ligne = br1.readLine()) != null) {
if(ligne.startsWith("Identifiant: ")) {
System.out.println(ligne);
id = ligne;
}
if(ligne.startsWith("Pass: ")) {
System.out.println(ligne);
pass = ligne;
}
}
System.out.println(ligne);
System.out.println(id);
System.out.println(pass);
br1.close();
} catch (Exception ex) {
System.err.println("Error. "+ex.getMessage());
}
目前,我 return 到我的 String
id 整个 ligne
,pass
也是如此 – 顺便说一句,所有 sysout
是测试,在那里没用。
如果有人知道如何将 :
之后的行而不是整行发送到 id,我可能搜索不好,但 google 不是我的朋友。
假设字符串中只有一个 : 符号,您可以使用
id = ligne.substring(ligne.lastIndexOf(':') + 1);
使用 StringUtils
StringUtils.substringAfter(id ,":"),
你为什么不尝试在 ligne
上做一个 split()
?
如果你使用 String[] splittedLigne = ligne.split(":");
,你将在 splittedLigne
中有以下内容:
splittedLigne[0]
-> :
之前是什么
splittedLigne[1]
-> :
之后是什么
这将为您提供每一行所需的内容。此外,如果您有多个 :
.
,这将对您有用
我使用 BufferedReader
创建了一个方法,该方法打开程序先前创建的文本文件并提取一些字符。我的问题是它提取了整行,我只想在指定字符 :
.
这是我的 try/catch
块:
try {
InputStream ips = new FileInputStream("file.txt");
InputStreamReader ipsr = new InputStreamReader(ips);
BufferedReader br1 = new BufferedReader(ipsr);
String ligne;
while((ligne = br1.readLine()) != null) {
if(ligne.startsWith("Identifiant: ")) {
System.out.println(ligne);
id = ligne;
}
if(ligne.startsWith("Pass: ")) {
System.out.println(ligne);
pass = ligne;
}
}
System.out.println(ligne);
System.out.println(id);
System.out.println(pass);
br1.close();
} catch (Exception ex) {
System.err.println("Error. "+ex.getMessage());
}
目前,我 return 到我的 String
id 整个 ligne
,pass
也是如此 – 顺便说一句,所有 sysout
是测试,在那里没用。
如果有人知道如何将 :
之后的行而不是整行发送到 id,我可能搜索不好,但 google 不是我的朋友。
假设字符串中只有一个 : 符号,您可以使用
id = ligne.substring(ligne.lastIndexOf(':') + 1);
使用 StringUtils
StringUtils.substringAfter(id ,":"),
你为什么不尝试在 ligne
上做一个 split()
?
如果你使用 String[] splittedLigne = ligne.split(":");
,你将在 splittedLigne
中有以下内容:
splittedLigne[0]
-> :
splittedLigne[1]
-> :
这将为您提供每一行所需的内容。此外,如果您有多个 :
.