最赞回答 / 在路上_3498046
在学生类里面重写一下toString方法,如下:@Override public String toString() { return "Students [number=" + getNumber() + ", name=" + getName() + ", age=" + getAge() + "]"; }就可以了,加油!!!
2016-10-03
已采纳回答 / 远方的云o
这两个的差别,实际上是read()方法两种重载方式的差别。in.read()表示单字节读取,相当于一滴一滴水(字节)地去洒in.read(byte[] buf ,int start ,int size )表示字节先读取到buf缓冲区,start表示缓冲区的起始位置,size表示存入缓冲区的大小。这种方式相当于先把一滴一滴水(字节)放到一个桶(buf)里,当然这个桶肯定有大小(size),当桶里的水达到一定程度(缓冲区的极限)时,再将整个桶里的水洒出去。授人以鱼不如授人以渔详细课程可以去看看 慕课网Java...
2016-10-03
最赞回答 / yjh不畏
那是因为你if这行加了一个分号。相当于if 条件 空执行 加分号 。后面的SYSO已经不受IF约束,为每次都运行的语句了。IF只能控制后面紧跟的花括号中的内容,或者是紧跟的一个分号前的内容
2016-10-02
最新回答 / leowei
肯定是 最后一次读的时候,字节数不够64个 ,比如说是30个 你却多读了34个byte buffer[]=new byte[64];int num;// 记录用数组读数据的个数while((num=in.read(buffer,0,buffer.length))!=-1){ System.out.println(new String(buffer,0,num))//这个时候num就是30 了,就不会多读了}说了半天,循环读的时候,只是利用了一个字节数组,如果第一次读满了64个,假如第二次读3...
2016-10-02
最赞回答 / 头发多
在32位的电脑中数字都是以32格式存放的,如果是一个byte(8位)类型的数字,高24位里面都是随机数字,低8位才是实际的数据。Java.lang.Integer.toHexString() 方法的参数是int(32位)类型,如果输入一个byte(8位)类型的数字,这个方法会把这个数字的高24为也看作有效位,这就必然导致错误,使用& 0XFF操作,可以把高24位置0以避免这样错误的发生。-------------------------------------------摘自http://blog...
2016-09-28
已采纳回答 / Jenichan
这么跟你说吧,GBK的编码中文和符号是双字节,字符和整型是单字节。utf-8的中文和符号是三字节,字符和整型是单字节。所以整体来说是不兼容的,但如果你的文本存的都是字符和数值,这样子是不会出现乱码的。
2016-09-26
最赞回答 / Crafon
我的和你也是一样41 00 06 e4 b8 ad e5 9b bd 41 4e 2d 56 fd 41 和老师也是一样的,老师讲错了,utf-8一个汉字可以占用3-4个字节.望采纳~
2016-09-26