用java代码实现读取一个文件中所以的txt文件然后按行读取txt文件内容清除所以空格和换行并且判断当等于某个字符串时,更换读取数据方式,更改为多行读取数据,输出结果
时间: 2024-03-10 07:50:41 浏览: 59
好的,以下是 Java 代码实现:
```java
import java.io.*;
public class ReadTxtFiles {
public static void main(String[] args) {
File folder = new File("folder_path"); // 文件夹路径
File[] files = folder.listFiles(); // 获取文件夹中的所有文件
for (File file : files) {
if (file.isFile() && file.getName().endsWith(".txt")) { // 判断是否为 txt 文件
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
boolean isMultiLine = false; // 标记是否需要多行读取数据
StringBuilder content = new StringBuilder(); // 用于存储多行数据的 StringBuilder
while ((line = br.readLine()) != null) {
String trimmedLine = line.trim().replaceAll("\\s+", ""); // 清除空格和换行
if (trimmedLine.equals("some_string")) { // 判断是否等于某个字符串
isMultiLine = true;
content = new StringBuilder(); // 清空 StringBuilder
} else if (isMultiLine) { // 需要多行读取数据
content.append(trimmedLine);
if (trimmedLine.endsWith("}")) { // 判断是否已经读取到一组数据的结尾
isMultiLine = false;
System.out.println(content.toString());
}
} else { // 按单行读取数据
System.out.println(trimmedLine);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
需要注意的是,代码中的 `folder_path` 需要替换成你实际的文件夹路径,另外,如果需要输出到文件中,可以使用 `FileWriter` 类和 `BufferedWriter` 类来实现。输出的结果是按照单行或多行输出的,遇到某个字符串时会切换读取方式。
阅读全文