将文件复制到对象然后删除文件

时间:2014-10-22 21:29:24

标签: java file-io

是否可以将文件的内容复制到容器然后立即删除文件,所以本质上我正在拍摄文件的快照,但不是将内容存储在另一个临时文件中,而是存储在java对象中

我想要完成的伪代码/代码

final File localPushFile = new File("testfile.txt");

if(!(localPushFile.exists())
{
   FileReader filestream = new FileReader(localPushFile);
   Object a  = filestream      //object variable will store snapshot of the file I am trying to copy
   deletefile(localPushFile)  //method that will delete the file as soon as a snapshot is taken
}

我假设我不能使用BufferedReader,因为它只是一个临时缓冲区?

2 个答案:

答案 0 :(得分:1)

是的,有可能。但是,为防止出现错误和随机问题,您需要从流中读取整个文件,然后在删除之前关闭该流。

答案 1 :(得分:1)

以下是将文件内容读入字节数组然后删除文件的示例。

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;

public class ReadFileIntoByteArray {
    public static byte[] getContentsAndDeleteFile(File file) throws IOException {
        byte[] data = Files.readAllBytes(file.toPath());
        file.delete();
        return data;
    }
}

注意:当线程在不合适的时刻死亡时数据将丢失,并且随着文件大小的增加,进程将失败