Byte类型怎么增量赋值??

tc=tl.AcceptTcpClient();ns=tc.GetStream();byte[]bytes=newbyte[1];byte[]data=newbyte[1... tc = tl.AcceptTcpClient();
ns = tc.GetStream();
byte[] bytes = new byte[1];
byte[] data = new byte[1] { 0 };
while (ns.Read(bytes, 0, bytes.Length) != 0)
{
data += data;
}
data += data;这个出错了,怎么循环读取byte类型的数据?维数也跟着增加!
但是我用ArrayList和Array创建的对象都不是“byte[]”类型,我是要一个byte[]类型跟着增加。
我监视变量ArrayList和Array类型都不是byte[],但是Array[0],ArrayList[0]有值。
展开
 我来答
明桖瑶gr
推荐于2016-06-09 · TA获得超过1205个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:621万
展开全部
要拷贝数组用 System.Array.Copy 静态方法,但要确保目标数组有足够的大小容纳源数组。

要维数跟着增加,即我们常说的:动态数组。
使用 System.Collection.ArrayList 类或 System.Collections.Generic.List 泛型类

使用 ArrayList 类示例:
using System.Collection;
ArrayList al = new ArrayList();
while(ns.Read(bytes, 0, bytes.Length) != 0)
{
al.Add(bytes[0]);
}

使用泛型 List 类示例(.net 2.0 版本新增的):
using System.Collection.Generic;
List<byte> list = new List<byte>();
while(ns.Read(bytes, 0, bytes.Length) != 0)
{
list.AddRange(bytes)
// 或 list.Add(bytes[0]);
}

另:若从流中读取一个字节,使用 ReadByte() 方法比较省事,不推荐使用 Read() 方法,示例:
using System.Collection.Generic;
List<byte> list = new List<byte>();
int value = ns.ReadByte()
while(value != -1)
{
list.Add((byte)value);
value = ns.ReadByte();
}

另2:若流支持查找,则可以通过 Length 属性判断流的大小初始化数组,然后一次性读取数据,这样性能较好,不建议一个字节一个字节读取。
// 数据量较小的流,推荐此方法(一般流的大小最好不要查过 10M 推荐)。
byte[] buffer = new byte[ns.Length];
ns.Read(buffer, 0, buffer.Lenth);

另3:通常正规的编程中,若无法判定流大小(不支持查找)或则流太大不合适一次性读取,往往采用固定大小缓冲数组一块、一块的读取(譬如:一次读取 1024 byte),示例:
using System.Collection.Generic;
const int BufferSize = 1024; // 定义一个缓冲区大小的常量,以便以后修改
List<byte> list = new List<byte>();
byte[] buffer = new byte[BufferSize]; // 开辟缓冲区
int len = 0;
do
{
len = ns.Read(buffer, 0, BufferSize)
if(len == BufferSize)
{
list.AddRange(buffer);
}
else
{
// 这里说明已经读取到流的末尾了,已没有 BufferSize 大小了
// 一个一个的放入集合
for(int index = 0; index < len; index++)
list.Add(buffer[index]);
}
}
while(len != 0)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式