Java 手动删除后,文件内容是否仍然可以读取?
1\echo“1”>/home/brian/Desktop/meJava 手动删除后,文件内容是否仍然可以读取?,java,file,Java,File,1\echo“1”>/home/brian/Desktop/me 2\将断点设置为“int read=fileReader.read();” 3\启动调试 4\rm-f/home/brian/Desktop/me 5\跳到末尾至少在类unix操作系统上,这是预期的行为:只要有一个打开的文件描述符,rm文件的块将保持分配状态,并通过该文件描述符访问 但是,我希望您不能通过删除的文件名为它们打开新的文件描述符。在大多数类似Unix的系统上,文件的数据将保留在磁盘上,直到所有引用消失;这包括路径名(硬
2\将断点设置为“int read=fileReader.read();”
3\启动调试
4\rm-f/home/brian/Desktop/me
5\跳到末尾至少在类unix操作系统上,这是预期的行为:只要有一个打开的文件描述符,rm文件的块将保持分配状态,并通过该文件描述符访问
但是,我希望您不能通过删除的文件名为它们打开新的文件描述符。在大多数类似Unix的系统上,文件的数据将保留在磁盘上,直到所有引用消失;这包括路径名(硬链接)和打开文件句柄。正如您所说,我在另一个JVM中运行了我的代码,并看到了我预期的异常。谢谢你,克里斯。
import java.io.FileReader;
public class SimpoTest {
public static void main(String[] args) {
FileReader fileReader = null;
try {
fileReader = new FileReader("/home/brian/Desktop/me");
int read = fileReader.read();
System.out.println((char) read);
} catch (Exception e) {
fileReader = null;
e.printStackTrace();
}
}
}