,判断如果等于字符串[INTRO]时,之后的读取内容方式改为两行读取内容,内容不能为空格和换行,一直按两行读取读取到字符串为优待政策,如果等于字符串优待政策时,就改为多行读取,结束标记为服务设施,如果等于字符串服务设施时,就改为多行读取,结束标记为[GRADE],如果等于字符串[GRADE]时,就按照逐行读取内容,最后将这些数据输出
时间: 2024-03-20 15:42:27 浏览: 45
好的,以下是Java代码实现:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String filePath = "your_file_path_here";
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
String line;
boolean isTwoLineRead = false;
boolean isMultiLineRead = false;
while ((line = br.readLine()) != null) {
if (line.equals("[INTRO]")) { // 两行读取内容
isTwoLineRead = true;
isMultiLineRead = false;
} else if (line.equals("优待政策")) { // 多行读取,结束标记为服务设施
isTwoLineRead = false;
isMultiLineRead = true;
String endTag = "服务设施";
String content = "";
while ((line = br.readLine()) != null && !line.equals(endTag)) {
content += line.trim();
}
System.out.println("[优待政策]: " + content);
} else if (line.equals("服务设施")) { // 多行读取,结束标记为[GRADE]
isTwoLineRead = false;
isMultiLineRead = true;
String endTag = "[GRADE]";
String content = "";
while ((line = br.readLine()) != null && !line.equals(endTag)) {
content += line.trim();
}
System.out.println("[服务设施]: " + content);
} else if (line.equals("[GRADE]")) { // 逐行读取内容
isTwoLineRead = false;
isMultiLineRead = false;
} else { // 根据情况读取内容
if (isTwoLineRead) { // 两行读取
String content = line.trim() + br.readLine().trim();
System.out.println("[INTRO]: " + content);
} else if (isMultiLineRead) { // 多行读取
String content = line.trim();
while ((line = br.readLine()) != null && !line.trim().isEmpty()) {
content += line.trim();
}
System.out.println(content);
} else { // 逐行读取
System.out.println(line.trim());
}
}
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
其中,`your_file_path_here` 表示你要读取的文件路径。
代码中通过设置 `isTwoLineRead` 和 `isMultiLineRead` 变量来判断当前读取方式,根据不同情况进行读取内容,并输出到控制台。你可以根据需要修改输出的方式。
阅读全文