Vb.net 使用IO.StreamReader读取文件后无法写入该文件
我正在制作一个加密程序,它也可以作为记事本(CryptoMatic)使用。有一个打开的函数,其代码如下:Vb.net 使用IO.StreamReader读取文件后无法写入该文件,vb.net,filestream,bufferedreader,.net,Vb.net,Filestream,Bufferedreader,.net,我正在制作一个加密程序,它也可以作为记事本(CryptoMatic)使用。有一个打开的函数,其代码如下: Dim r As New StreamReader(filename) Dim text As String = r.ReadToEnd txtFileContents.text = text r.Dispose() r.Close() 现在有了“保存”和“另存为”按钮 “保存”按钮检查文件是否以前保存过。如果是,则我尝试使用以下代码写入该文件:
Dim r As New StreamReader(filename)
Dim text As String = r.ReadToEnd
txtFileContents.text = text
r.Dispose()
r.Close()
现在有了“保存”和“另存为”按钮
“保存”按钮检查文件是否以前保存过。如果是,则我尝试使用以下代码写入该文件:
Dim myFileStream As New System.IO.FileStream(filename, FileMode.Append, FileAccess.Write, FileShare.None)
myFileStream.Lock(0, 100)
Dim myWriter As New System.IO.StreamWriter(myFileStream)
myWriter.WriteLine(text)
myWriter.Flush()
myWriter.Close()
myFileStream.Close()
myFileStream.Unlock(0, 100)
现在,当我按下保存按钮时,会出现以下错误:
The process cannot access the file 'C:\Users\VisualTech\Documents\Visual Studio 2010\Projects\CryptoMatic Update\CryptoMatic Update\bin\Debug\text.txt' because it is being used by another process.
应用程序停止,有人能帮我吗?我已经尝试了上面的代码,并注意到两件事:
- 您不需要调用
,因为您已经打开了它 使用myFileStream.Lock
FileShare.None
- 在调用之后,您不能调用
myFileStream.Unlock(01100)
myFileStream.Close()
Sub Main
Dim text = "This is a text to write in the stream"
Using myFileStream As New System.IO.FileStream("D:\temp\testlock.txt", FileMode.Append, FileAccess.Write, FileShare.None)
Using myWriter As New System.IO.StreamWriter(myFileStream)
myWriter.WriteLine(text)
End Using
End Using
End Sub
我已经尝试了上面的代码,并注意到两件事:
- 您不需要调用
,因为您已经打开了它 使用myFileStream.Lock
FileShare.None
- 在调用之后,您不能调用
myFileStream.Unlock(01100)
myFileStream.Close()
Sub Main
Dim text = "This is a text to write in the stream"
Using myFileStream As New System.IO.FileStream("D:\temp\testlock.txt", FileMode.Append, FileAccess.Write, FileShare.None)
Using myWriter As New System.IO.StreamWriter(myFileStream)
myWriter.WriteLine(text)
End Using
End Using
End Sub