已采纳回答 / gkenan
serialVersionUID不一致,导致反序列化失败。当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class(它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系,也就是唯一的)自动生成一个serialVersionUID作序列化版本比较用,这种情况下,如果class文件(类名,方法明等)没有发生变化(增加空格,换行,增加注释,等等),就算再编译多次,serial...
2017-05-07
已采纳回答 / 慕粉0800163776
流是计算机中用于在两个设备或者库之间传递数据的形式。以计算机打开一个文档并显示出来为例:文档实际上是由很多字符构成的集合,而且这些字符间是有顺序的。当你打算打开它的时候,计算机要从硬盘上读取到文件,然后一行一行传给显示设备。你可以想象,系统从文件中由起始位置开始不断取出数据,像水一样通过管道流到显示设备这里。这就是流,确切说这一个是文件流。那么你想,既然流动,就需要管道。我们说管道就是缓冲区。实际上就是将数据先读取到缓冲区,然后显示设备从缓冲区中读取数据。这个概念懂了,咱们说下面的。显示设备获取数据通常是...
2017-05-03
已采纳回答 / 小严来了
同学,你的第一个段程序 i=0,而你的第二个程序 j=1。我想是显示的问题吧。输出没什么问题 ,还有就是你的代码 E:\\javaio\\日记.txt 这个路径最好写一样的吧, 看着舒服点。养成写代码格式化的好习惯,这样别人阅读你的代码会更清晰。最后就是建议你提问的时候最好贴出代码块,别人可能需要调试一下才能知道哪里错了。几张图片换做是你自己可能都懒得看。
2017-04-28
已采纳回答 / 袁初
byte---字节类型,即一个字节,占8位,最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。Java中用补码表示二进制数,补码的最高位是符号位,最高位为“0”表示正数,最高位为“1”表示负数。正数补码为其本身;负数补码为其绝对值各位取反加1;(-14),按照概念其绝对值为0000 1110,各位取反为1111 0001,再加1为1111 0010,即(-14)的二进制表示形式为11110010。1111 0010 & 0xff,与运算后结果为1111 0010,结果还是(-14)...
2017-04-27
已采纳回答 / 郝Sir0
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"gbk"); InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk");
2017-04-26
已采纳回答 / LioHD
private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException{ s.defaultWriteObject();//把虚拟机默认能序列化的元素 进行序列化 s.writeUTF(str); }private void readObject(java.io.ObjectInputStream s)throws java.io.IOException,ClassNotFoundException{ s.de...
2017-04-20
已采纳回答 / 橡树的绿叶
大哥 你遍历都是同一个 也就是第一个 for(byte b3:bytes){} for(byte b2:bytes){} for(byte b:bytes){}
2017-04-18
已采纳回答 / 海风3
一直循环着读,比如你写的byte为10,while循环读取输出一次,返回不是-1再次进入循环,知道in.read(buf, 0, buf.length)这个方法读到文件最后,这个方法返回-1,循环结束。这种模式不是一直读最后输出,而是读一点,然后输出,在读一点
2017-04-16