Java 如何在文本文件中保留一些字符串?
我有一个文本文件,其格式如下:Java 如何在文本文件中保留一些字符串?,java,file,text,Java,File,Text,我有一个文本文件,其格式如下: ab cd ef gh ij .. ab cd ef 我想删除“ef”之后的字符串,我的意思是在运行我的程序后,文本文件结构如下: ab cd ef gh ij .. ab cd ef 我正在使用netbeans IDE和java代码。有人能帮忙吗? 这是我尝试过的代码,但它只是在字符串中保留“ef”之前的字符串,但我不知道如何执行其他操作 BufferedReader br = new BufferedReader(new FileReader("E
ab
cd
ef
gh
ij
..
ab
cd
ef
我想删除“ef”之后的字符串,我的意思是在运行我的程序后,文本文件结构如下:
ab
cd
ef
gh
ij
..
ab
cd
ef
我正在使用netbeans IDE和java代码。有人能帮忙吗?
这是我尝试过的代码,但它只是在字符串中保留“ef”之前的字符串,但我不知道如何执行其他操作
BufferedReader br = new BufferedReader(new FileReader("E:\\info.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (!(line.equals("ef"))) {
sb.append(line);
// sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
System.out.print(everything);
// System.out.print(sb);
} finally {
br.close();
}
下面是一个更正文件的示例
final String fileName = "E:\\info.txt";
String everything = "";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (!(line.equals("ef"))) {
sb.append(line).append("\n");
// sb.append(System.lineSeparator());
line = br.readLine();
}
sb.append(line);
everything = sb.toString();
System.out.print(everything);
}
final File file = new File(fileName);
file.delete();
try (FileWriter writer = new FileWriter(fileName)) {
writer.write(everything);
}
您可以在以下示例中使用Apache commons io:
private final String FILE_NAME = "E:\\info.txt";
public void test() throws IOException {
File file = new File(FILE_NAME);
List<String> strings = FileUtils.readLines(file);
int ef = strings.indexOf("ef");
List<String> stringBeforeEF = strings.subList(0, ef);
FileUtils.writeLines(file, stringBeforeEF);
}
private final String FILE_NAME=“E:\\info.txt”;
public void test()引发IOException{
文件=新文件(文件名);
List strings=FileUtils.readLines(文件);
int ef=strings.indexOf(“ef”);
List stringBeforeEF=strings.subList(0,ef);
writeLines(文件,stringBeforeEF);
}
您的试用代码在哪里?我添加了我的代码,但根本不完整@RamanlfcWell现在,您在所有线路上循环,直到到达“ef”,然后停止。所以,难怪你会得到这样的输出。但是我的代码并没有改变我的文件,我希望文本文件按照我说的格式更正@弗洛里安