繁体   English   中英

重命名RandomAccessFile

[英]Renaming a RandomAccessFile

我有一个名为data.bin的RAF和一个名为temp.bin的临时RAF。

        data = new RandomAccessFile("data.bin","rws");
        temp = new RandomAccessFile("temp.bin","rws");

临时文件基本上是data.bin文件,但我改变了它的信息。 所以一旦我完成更改临时文件,我如何将temp.bin的名称更改为data.bin并删除旧的data.bin?

我已经看到了一些关于使用.renameTo()和东西重命名文件的事情,但这确实适用于RandomAccessFile。 我无法找到任何类似RAF的方法

RandomAccessFile并非旨在替换File类。

它旨在允许或多或少地阅读写作。

请使用File类进行重命名。

关闭RAF并使用java.nio.file.Files.move重命名临时文件。 File.renameTo有一个缺点。 如果它无法重命名该文件,您将永远不知道为什么,因为它只返回true或false。 如果失败,Files.move会抛出IOException。

我有同样的问题。 我做了这样的事情:

data.close();
temp.close();
File tempfile = new File("c:/.../temp.bin");
File datafile = new File("c:/.../data.bin");
tempfile.renameTo(datafile);

有关更多信息,请访问: http//www.tutorialspoint.com/java/io/file_renameto.htm

RandomAccessFile的目的是读/写信息。 要处理文件名,存在等,必须使用File类。

在你的情况下,你应该做这样的事情:

File d = new File("data"); // Declare your data RAF through File
RandomAccessFile data = new RandomAccessFile(d,"rws");

public void foo(){
    File t = new File("temp"); // Declare your temp RAF through File
    RandomAccessFile temp = new RandomAccessFile(t,"rws");
    //TODO data RAF alteration
    data.close();
    d.delete(); //First delete data File, just in case
    temp.close();
    File f = new File("data");
    t.renameTo(f);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM