为了账号安全,请及时绑定邮箱和手机立即绑定

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
源码下下来不对呀
键盘声音好听
讲得挺好的
我们学校教材用的就是BufferedReader BufferedWriter
readLine()一行一行地读写
熟悉的感觉
flush()放在while外和while里面 时间差太多了

已采纳回答 / zjxjwxk
我这里用你的没有一点问题诶  是不是main函数有问题你把序列、反序列封装成函数,那我的main函数是这样的:ObjectOutputStream oos = new ObjectOutputStream(                new FileOutputStream("demo/obj2.dat")        );        Bar2 bar2 = new Bar2();        oos.writeObject(bar2);        oos.flush();        ...
老师讲得不错,但我难以消化,看来我还要继续努力啊!

最赞回答 / kk求知者
因为你的编码方式是默认的编码方式utf-16be 而在写入“中” 这个汉字是 转换为字节数组是 采用的是GBK编码方式    byte[] gbk=s.getBytes("gbk");  所以在文件中 存在2个GBK编码方式的字节。而在后面的读时 用的是默认的编码方式将文件里的提取出所有的。而又2个不是这种了类型的 则会出现乱码. 个人理解

已采纳回答 / qq_向前走呗_0
java中指针的概念是隐式的,指向文件中的某个字节,当打开文件时候,指针指在文件开头,pointer=0,每一次向文件中output字节,指针都会移动,Xxx.seek(0); 是让指针回到文件头部。
用buffer复制一个11M的mp3,把flush放在while循环里要18或19s,flush放在while循环之后只需要400ms左右
复制到最后并不是只包含被复制文件的最后一次被督导buf中的内容,每一次的写出指针都会移动,所谓的零开头,是每一次将buf中写入文件中内容的末端

最赞回答 / 噩噩噩噩噩噩噩噩Plus
那是因为你没有在类中创建toString()函数public String toString() { return id+" "+name+" "+age; }
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消