Java代码删除文件中指定行数据
时间: 2023-08-27 08:05:44 浏览: 129
要删除文件中指定行的数据,可以使用Java中的FileReader类和BufferedReader类。以下是一个示例代码:
```java
import java.io.*;
public class DeleteLineFromFile {
public static void main(String[] args) {
try {
// 打开文件
FileInputStream fileInputStream = new FileInputStream("file.txt");
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
// 创建临时文件
File tempFile = new File("temp.txt");
FileWriter fileWriter = new FileWriter(tempFile);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
// 读取文件并删除指定行
String lineToRemove = "这是要删除的行";
String line;
while ((line = bufferedReader.readLine()) != null) {
if (!line.trim().equals(lineToRemove)) {
bufferedWriter.write(line);
bufferedWriter.newLine();
}
}
// 关闭文件
bufferedReader.close();
bufferedWriter.close();
// 删除原文件并重命名临时文件
File file = new File("file.txt");
if (file.delete()) {
tempFile.renameTo(file);
System.out.println("指定行已从文件中删除!");
} else {
System.out.println("无法删除指定行!");
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用了FileInputStream和BufferedReader类来读取文件中的数据,并使用临时文件来保存要保留的数据。如果读取到要删除的行,则不写入新文件中。最后,我们删除原文件并重命名临时文件。请注意,这种方法只能删除一个指定的行。如果要删除多个行,请使用列表或数组来存储要删除的行号,并进行相应的修改。
阅读全文