第一次创建FileInputStream时,我知道它会吸收文件中包含的数据。现在,假设我用FileOutputStream修改了文件,但尚未关闭FileInputStream,它会更改FileInputStream包含在其中的数据还是保持不变?如果保持不变,是否有办法将新更改添加到FileInputStream而不是再次读取整个文件?

最佳答案

FileInputStream不会从文件中获取数据。当您调用read()时,将按需获取数据。
如果您尝试使用FileOutputStream修改文件,而我还没有在Windows上关闭FileInputStream,它将失败并显示Exception。在Unix / Linux系统上,您将读取旧文件的一部分和新文件的一部分(已被FileOutputStream覆盖)。如果确实需要同时在同一文件中进行读写,则最好使用RandomAccessFile

关于java - FileInputStream创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31858050/

10-10 18:05