我已经将流转换为字符串,但是我想让它只给我byte []。这是我的代码
public byte[] Read()
{
try
{
byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = 0;
do
{
numberOfBytesRead = mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
}
while (mmInStream.IsDataAvailable());
System.Diagnostics.Debug.WriteLine(myCompleteMessage, "Reading");
}
catch (IOException ex)
{
System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
}
return null;
}
您可以从一个单独的数组中的所有中间缓冲区收集数据。我正在使用ArrayList收集所有缓冲区数据。接收到数据后,我们将ArrayList转换为数组。
public byte[] Read()
{
try
{
byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = 0;
var finalByteList = new ArrayList<byte>();
do
{
numberOfBytesRead = mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);
finalByteList.AddRange(myReadBuffer)
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
}
while (mmInStream.IsDataAvailable());
// here is the final array of bytes
var finalByteArray = finalByteList.ToArray();
System.Diagnostics.Debug.WriteLine(myCompleteMessage, "Reading");
}
catch (IOException ex)
{
System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
}
return null;
}