Vb.net 使用相同的文件错误

Vb.net 使用相同的文件错误,vb.net,Vb.net,点击一个按钮,我有以下代码来写我的文本框中的内容 Dim file As System.IO.StreamWriter file = My.Computer.FileSystem.OpenTextFileWriter("C:/Users/Nick/Documents/Dra.txt", False) file.WriteLine(NameBasic) file.WriteLine(LastBasic) file.WriteLine(PhoneBasic)

点击一个按钮,我有以下代码来写我的文本框中的内容

  Dim file As System.IO.StreamWriter
    file = My.Computer.FileSystem.OpenTextFileWriter("C:/Users/Nick/Documents/Dra.txt", False)

    file.WriteLine(NameBasic)
    file.WriteLine(LastBasic)
    file.WriteLine(PhoneBasic)
    file.WriteLine(NameEmer1)
在我的表单加载中,我加载了记事本中所写的内容,这表示它已经被使用(文件),这是真的,我怎么能有两个不同的函数(写入和读取)来处理同一个文件而不出现此错误

The process cannot access the file 'C:\Users\Nick\Documents\Dra.txt' because it is being used by another process.
这是我的
onformload

        Dim read As System.IO.StreamReader
    read = My.Computer.FileSystem.OpenTextFileReader("C:/Users/Nick/Documents/Dra.txt")
    lblNameBasic.Text = read.ReadLine

我有点被这个问题卡住了,谢谢你,你需要在写完文件后关闭它

 Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("C:/Users/Nick/Documents/Dra.txt", False)

file.WriteLine(NameBasic)
file.WriteLine(LastBasic)
file.WriteLine(PhoneBasic)
file.WriteLine(NameEmer1)
file.Close()

回答你的问题:

如何让两个不同的函数(写入和读取)操作同一个文件而不出现此错误

The process cannot access the file 'C:\Users\Nick\Documents\Dra.txt' because it is being used by another process.
如果您真的想从两个进程同时读写同一个文件,则需要。
My.Computer.FileSystem
方法不这样做。ª

然而,我怀疑你真的不想这么做。我怀疑你想写作,写完之后,你想阅读。在这种情况下,只需在使用文件后关闭它就足够了。最简单的方法是使用
Using
语句:

Using file = My.Computer.FileSystem.OpenTextFileWriter(...)
    file.WriteLine(...)
    file.WriteLine(...)
    ...
End Using
这可确保在
Using
块离开后(通过正常执行或异常),文件将立即正确关闭。事实上,将其类实现了
IDisposable
(例如
StreamWriter
)的每个对象的使用封装在
Using
语句中是一种很好的做法



根据,
OpenTextFileWriter
创建了一个
新的IO.StreamWriter(文件、附加、编码)
,这反过来又创建了一个
新的文件流(…,FileShare.Read)

很抱歉,我确实忘记了把它包含在StreamReader中,不过我忘了把它添加到StreamReader上!那么,将read.Close()添加到StreamReader是否解决了这个问题呢