gpt4 book ai didi

java - java BufferedReader 中的标记和重置

转载 作者:行者123 更新时间:2023-12-01 11:51:16 29 4
gpt4 key购买 nike

我想使用 mark()reset() 方法来读取分隔符之前的行。

    String line;
FileReader fr = new FileReader(PATH);
LineNumberReader br = new LineNumberReader(fr);
String DIVIDER = "================================";
while ((line = br.readLine()) != null) {
boolean endOfObj = false;
while (!line.trim().contains(DIVIDER)) {
br.mark(line.length());
line = br.readLine(); //return next line
}
br.reset();
line = br.readLine();

但是行变量值不是分隔符的前一行。我的问题是什么。谢谢你

最佳答案

您可以尝试使用以下代码吗?我稍微整理了一下您的代码,并将其放入名为 getPreviousLine() 的方法中。我感觉你对使用 mark()reset() 很着迷,所以我只是依靠纯逻辑和状态来找到分隔符之前的行。如果没有找到分隔符,该方法将返回null

String getPreviousLine(String PATH) {
String line;
FileReader fr = new FileReader(PATH);
LineNumberReader br = new LineNumberReader(fr);
String DIVIDER = "================================";
boolean endOfObj = false;
String previousLine = br.readLine();

if (previousLine == null) {
return null;
}

while ((line = br.readLine()) != null) {
if (line.trim().contains(DIVIDER)) {
endOfObj = true; // found the divider; break
break;
} else {
previousLine = line; // advance your line pointer
}
}

if (endOfObj) {
return previousLine;
} else {
return null;
}
}

关于java - java BufferedReader 中的标记和重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28805242/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com