【发布时间】:2019-07-18 14:38:47
【问题描述】:
在“while”条件内,它显示正确的行,但是当我尝试在“while”之外显示同一行时,它会显示我的文本文件的最后一行。
public String path() throws FileNotFoundException {
Scanner s = null;
String str;
try {
s = new Scanner(new BufferedReader(new
FileReader("src/main/resources/linda.txt")));
do{
str=s.next();
if((s.hasNext(("get:"))||s.hasNext(("post:")) || s.hasNext(("put:")) || s.hasNext(("delete:"))))
{
System.out.println(str);
}
}while(s.hasNext());
}
finally{
if (s != null) {
}
} System.out.println(str);
return str;
}
我希望这段代码的输出是
欺诈检查/ :fraudcheck/:,但实际输出是欺诈检查/: foo:
这是我的文本文件
openapi: "3.0.0"
info:
title: Simple API overview
version: 2.0.0
paths:
fraudcheck/:
get:
operationId: listVersionsv2
summary: List API versions
responses:
'200':
description: |-
200 response
content:
application/json:
examples:
foo:
【问题讨论】:
-
一定要用Java吗?其他工具更适合这项任务
-
添加
break;找到给定行后,它将退出while循环.. -
您的循环一直运行到文件末尾。它一直在
str中存储行,只是不打印它们。如果只有一个匹配,您可以在匹配后直接从循环中返回。 -
谢谢阿诺!它现在可以在休息时使用;
标签: java file-io java.util.scanner