最赞回答 / 在路上_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
已采纳回答 / 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
已采纳回答 / QuaciXie
<...code...>read函数返回的是缓冲数组中实际上读入的字节数,无论是read(byte[] b) 还是 read(byte[] b,int off,int length)。对于read(byte[] b),它默认执行read(byte[] b,0,b.length)。所以应该可以用read(byte[] b)代替的 。解释如下:<...图片...>如果说在读到最后一组的时候,缓冲数组没有满,len值很有用。
2016-09-17
已采纳回答 / XhstormR
因为 你是 Bar2 bar2 = new Bar2(); bar2 = (Bar2)ois.readObject();但是老师写的是 Bar2 bar2 = (Bar2)ois.readObject(); 这里要注意的是 老师并没有去new一个Bar2对象而你却是先new出来的 肯定会调用父类的构造函数。
2016-09-14