【发布时间】:2016-12-09 19:22:54
【问题描述】:
我想同时写入和读取一个二进制文件,但是每当我尝试这样做时,我总是得到一个异常,指出该文件已被另一个进程使用。我知道如何使用普通的 FileStream 来做到这一点,但使用 BinaryReader 和 BinaryWriter 就不行了。
有人知道如何同时读取和写入二进制文件吗?
到目前为止我做了什么:
FileSt = New FileStream("file.bin", FileMode.Create,FileAccess.ReadWrite)
writer = New BinaryWriter(FileSt, enc)
reader = New BinaryReader(File.Open("file.bin", FileMode.Open))
【问题讨论】:
-
除了提供的答案之外,如果您打算打开同一个文件两次 - 一次用于读取,一次用于写入 - 那么您应该使用
FileAccess.Read和FileAccess.Write另一个。此外,不要使用FileStream构造函数打开文件一次,也不要使用File.Open打开文件一次。保持一致并两次使用相同的方法。另外,使用Using块打开文件,以便在完成后可以隐式关闭它。