SerialPort.Read 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從 SerialPort 輸入緩衝區讀取。
多載
Read(Byte[], Int32, Int32) |
從 SerialPort 輸入緩衝區讀取大量位元組,並將它們寫入指定位移上的位元組陣列。 |
Read(Char[], Int32, Int32) |
從 SerialPort 輸入緩衝區讀取大量字元,並將它們寫入指定位移上的字元陣列。 |
Read(Byte[], Int32, Int32)
從 SerialPort 輸入緩衝區讀取大量位元組,並將它們寫入指定位移上的位元組陣列。
public:
int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public int Read (byte[] buffer, int offset, int count);
member this.Read : byte[] * int * int -> int
Public Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
參數
- buffer
- Byte[]
要寫入輸入的位元組陣列。
- offset
- Int32
buffer
中要寫入位元組的位移。
- count
- Int32
要讀取的最大位元組數。 如果 count
大於輸入緩衝區的位元組數目,則會讀取較少的位元組。
傳回
讀取的位元組數。
例外狀況
傳遞的 buffer 為 null
。
指定的連接埠未開啟。
offset
或 count
參數超出所傳遞之 buffer
的有效區域以外。 offset
或 count
小於零。
offset
加上 count
大於 buffer
的長度。
沒有可讀取的位元組。
備註
如果需要在讀取文字和從數據流讀取二進位數據之間切換,請選取仔細定義文字與二進位數據之間的界限的通訊協定,例如手動讀取位元組和譯碼數據。
SerialPort因為類別會緩衝處理數據,而且 屬性中包含的BaseStream數據流不會,所以兩者可能會與可讀取的位元組數目衝突。 屬性 BytesToRead 可以指出有位元組可讀取,但這些位元組可能無法供 屬性中包含的 BaseStream 數據流存取,因為它們已緩衝處理至 SerialPort 類別。
當讀取的位元組數目等於count
,但序列埠上仍有可用的未讀取位元組時,此方法Read不會封鎖其他作業。
適用於
Read(Char[], Int32, Int32)
從 SerialPort 輸入緩衝區讀取大量字元,並將它們寫入指定位移上的字元陣列。
public:
int Read(cli::array <char> ^ buffer, int offset, int count);
public int Read (char[] buffer, int offset, int count);
member this.Read : char[] * int * int -> int
Public Function Read (buffer As Char(), offset As Integer, count As Integer) As Integer
參數
- buffer
- Char[]
要寫入輸入的字元陣列。
- offset
- Int32
buffer
中要寫入字元的位移。
- count
- Int32
要讀取的字元數上限。 如果 count
大於輸入緩衝區的字元數目,則會讀取較少的字元。
傳回
已讀取的字元數。
例外狀況
傳遞的 buffer
為 null
。
offset
或 count
參數超出所傳遞之 buffer
的有效區域以外。 offset
或 count
小於零。
指定的連接埠未開啟。
沒有可讀取的字元。
備註
使用這個方法從序列埠讀取字元。
如果需要在讀取文字和從數據流讀取二進位數據之間切換,請選取仔細定義文字與二進位數據之間的界限的通訊協定,例如手動讀取位元組和譯碼數據。
SerialPort因為類別會緩衝處理數據,而且 屬性中包含的BaseStream數據流不會,所以兩者可能會與可供讀取的字元數目衝突。 屬性 BytesToRead 可以指出有字元可讀取,但這些字元可能無法供 屬性中包含的 BaseStream 數據流存取,因為它們已緩衝處理至 SerialPort 類別。
當讀取的位元組數目等於count
,但序列埠上仍有可用的未讀取位元組時,此方法Read不會封鎖其他作業。