缓冲读取器读取文本直到字符 [英] Buffered Reader read text until character
本文介绍了缓冲读取器读取文本直到字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用缓冲的读取器来读取充满信息行的文件。一些较长的文本行扩展为多于一行,因此缓冲将其视为新行。每行以';'符号结尾。因此,我想知道是否有一种方法可以使缓冲的读取器读取一行直到到达
’;’,然后将整个行作为字符串返回。
I am using a buffered reader to read in a file filled with lines of information. Some of the longer lines of text extend to be more than one line so the buffered views them as a new line. Each line ends with ';'
symbol. So I was wondering if there was a way to make the buffered reader read a line until it reaches the ';'
then return the whole line as a string. Here a how I am using the buffered reader so far.
String currentLine;
while((currentLine = reader.readLine()) != null) {
// trim newline when comparing with lineToRemove
String[] line = currentLine.split(" ");
String fir = line[1];
String las = line[2];
for(int c = 0; c < players.size(); c++){
if(players.get(c).getFirst().equals(fir) && players.get(c).getLast().equals(las) ){
System.out.println(fir + " " + las);
String text2 = currentLine.replaceAll("[.*?]", ".150");
writer.write(text2 + System.getProperty("line.separator"));
}
}
}
推荐答案
使用 扫描器
,您可以在其中设置定界符:
It would be much easier to do with a Scanner
, where you can just set the delimiter:
Scanner scan = new Scanner(new File("/path/to/file.txt"));
scan.useDelimiter(Pattern.compile(";"));
while (scan.hasNext()) {
String logicalLine = scan.next();
// rest of your logic
}
这篇关于缓冲读取器读取文本直到字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文