是否可以将文件的内容复制到容器然后立即删除文件,所以本质上我正在拍摄文件的快照,但不是将内容存储在另一个临时文件中,而是存储在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,因为它只是一个临时缓冲区?
答案 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;
}
}
注意:当线程在不合适的时刻死亡时数据将丢失,并且随着文件大小的增加,进程将失败