在Java中,删除文件后使用inputstream读取文件

问题描述

我有一个有关在Java中读取文件的问题。 这是示例代码

File path = new File("myfile.txt");
InputStream inputStream = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
file.delete();                
String line;
while((line = reader.readLine()) != null) {
    System.out.println(line);
}

我创建了一个输入流,并尝试读取它。正如他们所说,就像管道一样,您逐字节读取值。 为了加快速度,我们可以使用BufferedReader,它可以逐块读取。 因此,我在读取之前删除了该文件。 现在,当我阅读它时,即使文件不存在,它仍会读取完整的文件。 如果inputStream是管道,为什么它不会失败?有什么想法吗?

解决方法

我很确定这是因为您要从中加载的txt文件非常小,因此在初始化缓冲读取器时可以完全读取该文件。

,

在我看来,该文件仍然存在于阅读器和inputStream中。在重新运行应用程序之前,删除源文件不会有任何更改。
BufferedReader和InputStream类可能是为类似情况准备的。如果文件的源在运行期间脱机,这将很有用。
如果我错了,请纠正我,我不是专业程序员。