import java.io.*;
class TestByte
{
public static void main(String[] args)
{
int j = 0;
byte[] datas = null;
byte[] get = new byte[5];

if(args.length == 0)
{
System.out.println("java -cp class TestByte[param]");
System.exit(0);
}
datas = args[0].getBytes();//把字符变成字节,并存储在一个字节数组中。

System.out.println("data数组里原始的值:" + new String(datas));

ByteArrayInputStream bint = new ByteArrayInputStream(datas);//存储并缓冲字节数组

bint.read(get,0,3);   //从输入流读取到字节数组。

for(int i = 0;i <3; i ++)
{
while(get[i]<0) j++;
}

if (j % 2 == 0)
 System.out.println("get数组里的数据:" + new String(get));
else 
{
bint.read(get,0,4);
System.out.println(new String(get));
}

ByteArrayOutputStream bout = new ByteArrayOutputStream();
bout.write(datas,0,4);  //从数组写入字节输出流 bout
System.out.println("重写datas数组里的数据: " + bout);
}
}问题:从for循环开始输出不了数据,原因是什么?

解决方案 »

  1.   

    while(get[i] <0)   j++;
    ============================
    这里是个死循环吧,判断i,操作j
      

  2.   

    for(int   i   =   0;i   <3;   i   ++) 

    if(get[i]>0)   j++; 
    }
    没明白你目的,练着玩的吧
      

  3.   

    while(get[i] <0)   j++;   变为 if(get[i] <0)   j++; 即可