none
String 存成檔案的問題 RRS feed

  • 問題

  •  

    我參考了 同步scoket 的範例

     

    Dim bytesRec As Integer = handler.Receive(bytes)
                    data += Encoding.ASCII.GetString(bytes, 0, bytesRec)

     

    上面這一段會將傳過去的檔案存成 string格式 放在data變數中

     

    如果我要傳的是一個影片想要存成   video.mp4 的話 我應該要去參考那一個函式呢

    2008年5月1日 上午 10:06

解答

  • 你不是要存成檔案嗎?怎麼會不知道要用 Write() 呢?

     

    Code Snippet
    Option Explicit On
    Option Strict On
    Imports System
    Imports System.IO
    Class MyStream
        Private Const FILE_NAME As String = "Test.data"
        Public Shared Sub Main()
            ' Create the new, empty data file.
            If File.Exists(FILE_NAME) Then
                Console.WriteLine("{0} already exists!", FILE_NAME)
                Return
            End If
            Dim fs As New FileStream(FILE_NAME, FileMode.CreateNew)
            ' Create the writer for data.
            Dim w As New BinaryWriter(fs)
            ' Write data to Test.data.
            Dim i As Integer
            For i = 0 To 10
                w.Write(CInt(i))
            Next i
            w.Close()
            fs.Close()

            ' Create the reader for data.
            fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
            Dim r As New BinaryReader(fs)
            ' Read data from Test.data.
            For i = 0 To 10
                Console.WriteLine(r.ReadInt32())
            Next i
            r.Close()
            fs.Close()
        End Sub
    End Class

     

     

    Source: MSDN, .NET Framework Developer's Guide, General I/O tasks, Read and Write Binary data.

    2008年5月1日 上午 11:45
    版主

所有回覆

  • Dim bytesRec As Integer = handler.Receive(bytes)

     

    之後將它寫到 MemoryStream 中,再將它用 FileStream 存入檔案。

    如果你可以掌握檔案資料流動的話,也可以直接使用 FileStream 寫入檔案。

    2008年5月1日 上午 10:11
    版主
  •  小朱 寫信:
    Dim bytesRec As Integer = handler.Receive(bytes)

     

    之後將它寫到 MemoryStream 中,再將它用 FileStream 存入檔案。

    如果你可以掌握檔案資料流動的話,也可以直接使用 FileStream 寫入檔案。

     

    不好意思 參考過 FileStream類別後 我還是不太明白應該要用哪一個函式 

    目前沒有把string存到檔案的方法嗎

    Dim handler As Socket = listener.Accept()
                While True
                Console.WriteLine("Waiting for a connection...")
                          Dim handler As Socket = listener.Accept()
                Dim data As String = Nothing
                           While True
                    bytes = New Byte(1024) {}
                    Dim bytesRec As Integer = handler.Receive(bytes)
                    'data += Encoding.ASCII.GetString(bytes, 0, bytesRec)

                    Console.WriteLine("Text received : {0}", data)
                    If bytesRec < 1025 Then
                             Exit While
                    End If
                End While

     

    我這邊是先用當傳送到的byte少於 buffer大小的時候

    當作結束條件 是不是有更好的方法呢 謝謝

     

    2008年5月1日 上午 11:26
  • 你不是要存成檔案嗎?怎麼會不知道要用 Write() 呢?

     

    Code Snippet
    Option Explicit On
    Option Strict On
    Imports System
    Imports System.IO
    Class MyStream
        Private Const FILE_NAME As String = "Test.data"
        Public Shared Sub Main()
            ' Create the new, empty data file.
            If File.Exists(FILE_NAME) Then
                Console.WriteLine("{0} already exists!", FILE_NAME)
                Return
            End If
            Dim fs As New FileStream(FILE_NAME, FileMode.CreateNew)
            ' Create the writer for data.
            Dim w As New BinaryWriter(fs)
            ' Write data to Test.data.
            Dim i As Integer
            For i = 0 To 10
                w.Write(CInt(i))
            Next i
            w.Close()
            fs.Close()

            ' Create the reader for data.
            fs = New FileStream(FILE_NAME, FileMode.Open, FileAccess.Read)
            Dim r As New BinaryReader(fs)
            ' Read data from Test.data.
            For i = 0 To 10
                Console.WriteLine(r.ReadInt32())
            Next i
            r.Close()
            fs.Close()
        End Sub
    End Class

     

     

    Source: MSDN, .NET Framework Developer's Guide, General I/O tasks, Read and Write Binary data.

    2008年5月1日 上午 11:45
    版主