如何 return 文本文件中的特定行?
How to return specific line from text file?
在 "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/ :fraudcheck/:, 但实际输出是 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:
do-while 循环运行到文件末尾。
遇到匹配的行后,使用 break
退出循环。
您可以定义新变量 String result 并在达到理想条件时将行存储在其中然后输出此 variable.But 循环的执行将继续并且效率不高.
String result;
........
if((s.hasNext(("get:"))||s.hasNext(("post:")) || s.hasNext(("put:")) || s.hasNext(("delete:"))))
{
result = str;
System.out.println(str);
}
.......
System.out.println(result);
因此,如果您只需要一行,那么在条件块的末尾放置 break 会更有效
if((s.hasNext(("get:"))||s.hasNext(("post:")) || s.hasNext(("put:")) || s.hasNext(("delete:"))))
{
System.out.println(str);
break;
}
在这种情况下,当条件为真时循环停止,变量 str 将具有所需行的值。
在 "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/ :fraudcheck/:, 但实际输出是 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:
do-while 循环运行到文件末尾。
遇到匹配的行后,使用 break
退出循环。
您可以定义新变量 String result 并在达到理想条件时将行存储在其中然后输出此 variable.But 循环的执行将继续并且效率不高.
String result;
........
if((s.hasNext(("get:"))||s.hasNext(("post:")) || s.hasNext(("put:")) || s.hasNext(("delete:"))))
{
result = str;
System.out.println(str);
}
.......
System.out.println(result);
因此,如果您只需要一行,那么在条件块的末尾放置 break 会更有效
if((s.hasNext(("get:"))||s.hasNext(("post:")) || s.hasNext(("put:")) || s.hasNext(("delete:"))))
{
System.out.println(str);
break;
}
在这种情况下,当条件为真时循环停止,变量 str 将具有所需行的值。