Java怎么用io流删除文件中的数据啊

怎么用io流删除文件中的数据啊,我将一些数据写在了文件中,这样就不用每次再重新写,可我想删除里面的数据应该怎么做

要删除文件中的数据,可以使用Java IO流中的RandomAccessFile类。RandomAccessFile类可以在文件中定位并修改数据,包括删除数据。

以下是一个简单的示例代码,演示如何使用RandomAccessFile类删除文件中的数据:

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

public class DeleteDataFromFile {
    public static void main(String[] args) {
        File file = new File("data.txt");
        try {
            // 创建RandomAccessFile对象
            RandomAccessFile raf = new RandomAccessFile(file, "rw");
            // 将文件指针移动到要删除的数据的位置
            raf.seek(10);
            // 删除数据
            raf.writeBytes("");
            // 关闭RandomAccessFile对象
            raf.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,我们首先创建了一个File对象,表示要操作的文件。然后,我们创建了一个RandomAccessFile对象,指定文件名和打开模式为“rw”(读写模式)。接着,我们使用seek()方法将文件指针移动到要删除的数据的位置,然后使用writeBytes()方法将数据删除。最后,我们关闭RandomAccessFile对象。

需要注意的是,使用RandomAccessFile类删除数据时,要确保删除的数据长度与原数据长度相同,否则可能会出现数据错位的情况。

文件是线性存储的
你不能只删除部分数据
你只能全部读出来,删掉一部分,重新写回去
如果是ini、xml之类的格式,有现成的类库可以调用来修改、删除里面的属性
但是本质上只不过这个读写过程类库帮你做了而已
或者你不要直接操作txt,操作数据库文件,这样你就不必关心文件到底是如何修改的具体过程
关心数据即可