已采纳回答 / zjxjwxk
我这里用你的没有一点问题诶 是不是main函数有问题你把序列、反序列封装成函数,那我的main函数是这样的:ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream("demo/obj2.dat") ); Bar2 bar2 = new Bar2(); oos.writeObject(bar2); oos.flush(); ...
2018-02-24
最赞回答 / kk求知者
因为你的编码方式是默认的编码方式utf-16be 而在写入“中” 这个汉字是 转换为字节数组是 采用的是GBK编码方式 byte[] gbk=s.getBytes("gbk"); 所以在文件中 存在2个GBK编码方式的字节。而在后面的读时 用的是默认的编码方式将文件里的提取出所有的。而又2个不是这种了类型的 则会出现乱码. 个人理解
2018-02-10
已采纳回答 / qq_向前走呗_0
java中指针的概念是隐式的,指向文件中的某个字节,当打开文件时候,指针指在文件开头,pointer=0,每一次向文件中output字节,指针都会移动,Xxx.seek(0); 是让指针回到文件头部。
2018-02-09
用buffer复制一个11M的mp3,把flush放在while循环里要18或19s,flush放在while循环之后只需要400ms左右
复制到最后并不是只包含被复制文件的最后一次被督导buf中的内容,每一次的写出指针都会移动,所谓的零开头,是每一次将buf中写入文件中内容的末端
2018-02-08
最赞回答 / 噩噩噩噩噩噩噩噩Plus
那是因为你没有在类中创建toString()函数public String toString() { return id+" "+name+" "+age; }
2018-02-05