判断如果等于字符串[INTRO]时,之后的读取内容方式改为两行读取内容,内容不能为空格和换行,
时间: 2024-03-20 20:42:14 浏览: 99
好的,以下是修改后的Java代码实现:
```java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class TxtReader {
public static void main(String[] args) {
File folder = new File("path/to/folder"); // 文件夹路径
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 isIntro = false; // 判断是否进入了[INTRO]模式
String introLine = null; // [INTRO]模式下的第一行内容
while ((line = br.readLine()) != null) {
// 判断是否进入[INTRO]模式
if (line.equals("[INTRO]")) {
isIntro = true;
continue;
}
// 读取[INTRO]模式下的两行内容
if (isIntro) {
if (introLine == null) {
introLine = line.replaceAll("\\s+", "");
} else {
line = line.replaceAll("\\s+", "");
if (!line.isEmpty()) {
System.out.println(introLine + line);
}
isIntro = false;
introLine = null;
}
} else { // 读取普通模式下的内容
line = line.replaceAll("\\s+", "");
if (!line.isEmpty()) {
System.out.println(line);
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
在修改后的代码中,我们增加了两个变量`isIntro`和`introLine`来判断是否进入了[INTRO]模式,并记录[INTRO]模式下的第一行内容。当读取到字符串`[INTRO]`时,将`isIntro`设置为`true`并跳过这一行。在[INTRO]模式下,我们用`introLine`来记录第一行内容,并在读取到第二行内容时将其与第一行内容拼接输出。当读取到非空的普通模式下的内容时,直接输出即可。需要注意的是,我们在去除空格和换行符后,需要使用`isEmpty()`方法来判断读取到的内容是否为空。
阅读全文