“IOException未处理”错误不断出现

时间:2017-11-15 13:41:15

标签: vb.net

我有这个问题,它似乎没有消失。这是我在vb.net中完成的代码,其中我要传输文件,但我一直在收到错误

  

“IOException未处理”进程无法访问该文件   'C:\ Users \ Lenovo \ documents \ visual studio 2010 \ Projects \ File   streaming \ File Streaming \ bin \ Debug \ banking.xls'因为它正在存在   被另一个过程使用。

下面是代码:

Imports System.IO

Imports System.Windows.Forms.Form
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub btnDisplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplay.Click

        Dim FileStr As New FileStream("banking.xls", FileMode.Create, FileAccess.Write)

        Dim a As New StreamWriter(FileStr)

        'a.WriteLine("File should be displayed in the RTB............")
        'a.Close()

       **ERROR APPEARS HERE**     
        FileStr = New FileStream("banking.xls", FileMode.Open, FileAccess.Read)

        Dim i As New StreamReader(FileStr)

        i.BaseStream.Seek(0, SeekOrigin.Begin)

        If i.Peek() > -1 Then

            rtbDisplay.Text &= i.ReadLine()

        End If
        i.Close()

    End Sub

    Private Sub btnClear_Click(sender As System.Object, e As System.EventArgs) Handles btnClear.Click

        rtbDisplay.Text = ""

    End Sub

    Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles btnExit.Click

        Me.Close()

    End Sub

    Private Function FileStream() As Object
        Throw New NotImplementedException
    End Function

End Class

1 个答案:

答案 0 :(得分:2)

FileStreamStreamWriter是IDisposable对象,应该在完成后处理。当IDisposable具有本地范围时,最好使用Using块创建它们。

Sub Main()
    Using FileStr As New FileStream("banking.xls", FileMode.Create, FileAccess.Write)
        Using a As New StreamWriter(FileStr)
            a.WriteLine("File should be displayed in the RTB............")
        End Using
    End Using

    Using FileStr = New FileStream("banking.xls", FileMode.Open, FileAccess.Read)
        Dim i As New StreamReader(FileStr)
    End Using
End Sub

但是,我不知道为什么要将文本写入这样的xls文件。如果您正在操作Excel文件,则应该查看Open XmlMicrosoft Office Interop