none
StreamWriter的成員怎麼有colse,沒有open?? RRS feed

  • 問題

  • Dim strm As New System.IO.StreamWriter("D:\text01.txt")

    Private Sub Button1_Click
        strm.WriteLine("123")
        strm.Close()

    End Sub

    Private Sub Button2_Click
       strm.WriteLine("456") 
       strm.Close()

    End Sub

    寫入123之後,456會因為strm已關閉無法寫入。又沒有strm.open()可用,該怎麼辦?

    2006年10月5日 上午 07:34

解答

  • 那個NEW的時候就是Open了,你寫入123後就把他關閉了,所以當然沒辦法使用他。

    不過老實講,在Global區間New物件感覺上比較難掌握物件的生命週期。

    建議的寫法是宣告為Null,使用的時候New,之後再Close。

    如果會有很多不同的資料要寫入,那用個變數先接起來,再一口氣寫進檔案,效能也會比較好。

    2006年10月5日 上午 08:43
  • 建立一個instance時便建立open的功能, 而對於XXXWriter與XXXReader的類別, 會以Write與Read方法名稱比較合適其類別功能

     

    2006年10月5日 上午 08:47

所有回覆

  • 那個NEW的時候就是Open了,你寫入123後就把他關閉了,所以當然沒辦法使用他。

    不過老實講,在Global區間New物件感覺上比較難掌握物件的生命週期。

    建議的寫法是宣告為Null,使用的時候New,之後再Close。

    如果會有很多不同的資料要寫入,那用個變數先接起來,再一口氣寫進檔案,效能也會比較好。

    2006年10月5日 上午 08:43
  • 建立一個instance時便建立open的功能, 而對於XXXWriter與XXXReader的類別, 會以Write與Read方法名稱比較合適其類別功能

     

    2006年10月5日 上午 08:47
  • 3q~~謝謝你們的回答,我想我用StreamReader讀出來,加上"456"再寫入一次,比較符合我需要。
    2006年10月8日 下午 01:39