用java代码实现读取一个文件中所以的txt文件,如果在读取中遇到文件夹就进入文件夹中读取。读取方式为逐行读取txt文件中的内容清除所以空格和换行并且判断如果等于某个字符串时就,更换读取内容方式,这个判断的字符串还是按行读取,按两行读取中间添加换行符并且不读取换行和空格数据,如果等于另一个字符串时,更换为多行读取,判断的字符串按行读取
时间: 2024-03-14 15:47:17 浏览: 74
JAVA实现读取txt文件内容的方法
5星 · 资源好评率100%
以下是Java代码实现:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ReadFiles {
public static void main(String[] args) {
String rootPath = "path/to/root/folder"; // 根目录路径
readFiles(rootPath);
}
private static void readFiles(String path) {
File folder = new File(path);
File[] files = folder.listFiles();
if (files == null) {
return;
}
// 逐个遍历文件和文件夹
for (File file : files) {
if (file.isFile()) {
// 如果是txt文件,读取文件内容
if (file.getName().endsWith(".txt")) {
readTxtFile(file);
}
} else {
// 如果是文件夹,递归读取
readFiles(file.getAbsolutePath());
}
}
}
private static void readTxtFile(File file) {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
boolean isSingleLine = true; // 是否为单行读取模式
boolean isMultiLine = false; // 是否为多行读取模式
List<String> multiLines = new ArrayList<>(); // 多行读取缓存
while ((line = reader.readLine()) != null) {
// 清除空格和换行
line = line.replaceAll("\\s+", "");
// 判断是否更换读取方式
if (line.equals("string1")) {
isSingleLine = true;
isMultiLine = false;
} else if (line.equals("string2")) {
isSingleLine = false;
isMultiLine = false;
} else if (line.equals("string3")) {
isSingleLine = false;
isMultiLine = true;
} else {
// 根据当前读取方式读取内容
if (isSingleLine) {
// 单行读取
System.out.println(line);
} else if (isMultiLine) {
// 多行读取
if (line.equals("string4")) {
// 遇到结束标记,输出缓存内容并清空缓存
System.out.println(String.join("\n", multiLines));
multiLines.clear();
} else {
// 添加到缓存
multiLines.add(line);
}
} else {
// 两行读取
if (line.equals("string5")) {
// 读取下一行并添加换行符
String nextLine = reader.readLine();
if (nextLine != null) {
System.out.println(line + "\n" + nextLine);
}
} else {
System.out.println(line);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
其中,`path/to/root/folder`为根目录路径,`string1`、`string2`、`string3`、`string4`、`string5`为需要判断的字符串,可以根据实际情况进行修改。
阅读全文