用java代码实现读取一个文件中所以的txt文件逐行读取txt文件中的内容清除所以空格和换行,判断如果等于字符串[INTRO]时,之后的读取内容方式改为两行读取内容,内容不能为空格和换行,如果等于字符串优待政策时,就改为多行读取,结束标记为服务设施,如果等于字符串服务设施时,就改为多行读取,结束标记为[GRADE],如果等于字符串[GRADE]时,就按照逐行读取内容,最后将这些数据输出
时间: 2024-03-20 13:42:25 浏览: 97
Java逐行读取txt文档
好的,以下是实现代码,需要使用Java的IO类、正则表达式以及循环和条件判断语句:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ReadTxtFile {
public static void main(String[] args) throws IOException {
File file = new File("example.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
boolean isIntro = false;
boolean isPolicy = false;
boolean isFacility = false;
boolean isGrade = false;
String policyContent = "";
String facilityContent = "";
String gradeContent = "";
while ((line = reader.readLine()) != null) {
// 清除空格和换行
line = line.replaceAll("\\s+", "");
if (line.equals("[INTRO]")) {
isIntro = true;
continue;
}
if (line.equals("优待政策")) {
isPolicy = true;
continue;
}
if (line.equals("服务设施")) {
isFacility = true;
continue;
}
if (line.equals("[GRADE]")) {
isGrade = true;
continue;
}
if (isIntro) {
if (!line.isEmpty()) {
System.out.println(line);
}
isIntro = false;
} else if (isPolicy) {
if (!line.isEmpty()) {
policyContent += line + "\n";
}
if (line.equals("服务设施")) {
System.out.println(policyContent);
isPolicy = false;
}
} else if (isFacility) {
if (!line.isEmpty()) {
facilityContent += line + "\n";
}
if (line.equals("[GRADE]")) {
System.out.println(facilityContent);
isFacility = false;
}
} else if (isGrade) {
if (!line.isEmpty()) {
gradeContent += line + "\n";
} else {
System.out.println(gradeContent);
gradeContent = "";
isGrade = false;
}
} else {
System.out.println(line);
}
}
reader.close();
}
}
```
其中,`example.txt`是待读取的文件名,可以根据实际情况修改。在程序运行过程中,每读取到一行内容,就会先清除其中的空格和换行。如果读取到的内容为`[INTRO]`,则之后的读取方式改为逐行读取,直到读取到下一个关键字为止。如果读取到的内容为`优待政策`,则之后的读取方式改为多行读取,直到读取到下一个关键字为止。如果读取到的内容为`服务设施`,则之后的读取方式改为多行读取,直到读取到下一个关键字为止。如果读取到的内容为`[GRADE]`,则之后的读取方式改为逐行读取,直到读取到下一个空行为止。最终,程序会在控制台输出处理后的文本内容。
阅读全文