gpt4 book ai didi

java - 从文件中读取直到特定的字符序列

转载 作者:行者123 更新时间:2023-11-30 02:24:30 25 4
gpt4 key购买 nike

我有一个 JSON 文件,如下所示:

{  
"id":25,
"type":0,
"date":"Aug 28, 2017 12:14:28 PM",
"isOpen":true,
"message":"test"
}
/*
some lines here, comment, not json
*/

我想做的是能够从文件中读取,直到检测到注释部分“/*”的开头。

我能够编写一些代码,但由于某些原因输出似乎不正常:

BufferedReader br = null;
FileReader fr = null;
String comm = "/*";
fr=new FileReader(FILENAME);
br=new BufferedReader(fr);

String currentLine;

while((currentLine=br.readLine())!=null&&!(currentLine=br.readLine()).equals(comm))
{
System.out.println(sCurrentLine);
}
br.close();

输出只给我这个:

"id": 25,
"date": "Aug 28, 2017 12:14:28 PM",

我没有 json 部分 { 的开头,也没有整个 json 消息 "isOpen""message"...

如何读取结果并将其存储在字符串中直到评论部分?

最佳答案

您调用了两次currentLine = br.readLine(),因此读取了两行。这和人们使用时遇到的问题是一样的

Scanner sc = new Scanner(System.in);
if (sc.nextLine() != null) // This reads a line
myString = sc.nextLine(); //This reads the next line!

您不应该第二次调用它 - 直接将您的 currentLinecom 进行比较。

尝试:

String comm = "/*";
BufferedReader br = new BufferedReader(new FileReader(FILENAME););

StringBuilder sb = new StringBuilder();
String currentLine;

while ((currentLine = br.readLine()) != null && !(currentLine.equals(comm)) {
//System.out.println(currentLine);
sb.append(currentLine);
sb.append("\n");
}
br.close();
System.out.println(sb.toString());

如果您想使用Scanner ,它会是这样的:

StringBuilder sb = new StringBuilder();
Scanner sc = new Scanner(FILENAME);

while (sc.hasNext())
sb.append(sc.next());
System.out.println(sb.toString());

关于java - 从文件中读取直到特定的字符序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46001922/

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