第一次创建FileInputStream
时,我知道它会吸收文件中包含的数据。现在,假设我用FileOutputStream
修改了文件,但尚未关闭FileInputStream
,它会更改FileInputStream
包含在其中的数据还是保持不变?如果保持不变,是否有办法将新更改添加到FileInputStream
而不是再次读取整个文件?
最佳答案
FileInputStream不会从文件中获取数据。当您调用read()
时,将按需获取数据。
如果您尝试使用FileOutputStream修改文件,而我还没有在Windows上关闭FileInputStream,它将失败并显示Exception。在Unix / Linux系统上,您将读取旧文件的一部分和新文件的一部分(已被FileOutputStream覆盖)。如果确实需要同时在同一文件中进行读写,则最好使用RandomAccessFile
关于java - FileInputStream创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31858050/