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

文件传输基础——Java IO流

难度入门
时长 2小时 0分
学习人数
综合评分9.67
669人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰

最新回答 / 丑丶小亚
就是百分之千万的确定,files数组中是有东西的,避免程序异常。

已采纳回答 / qq_Hasneverforg_0
因为此处有两个异常—— FileNotFoundException, IOException ,而他们都是Exception的子类

最新回答 / qq_噪音王_0
就是,我往记事本里写了几个汉字,然后读取,每次都是先读取出一个?,然后再出现我写的汉字

最新回答 / 精慕门2405150
你是不是到错包了, RandomAccessFile是有这个构造器的

最新回答 / 慕婉清9094827
 //删除临时文件        File file = new File(dir,fileName);        if(file.exists()&&file.isFile()){            file.delete();        }根据路径和文件名读取文件,如果存在且是一个文件,则删除。这是我项目中用到的一段代码,亲测可用。

已采纳回答 / qq_为妳战天下_0
内容在raf中,raf.read(buf)就是说从raf读取内容,放进buf中去,所以buf是由内容的,求采纳

最新回答 / 下线123
b是你读取的字节,不是长度,in.read()读取一个字节  赋给b,然后如果b是-1就结束循环

已采纳回答 / 益达佳帅
一般你在main函数体里面,打syso然后按Alt+“/”,就会自动打印出来了。如果你设置了快捷输入,直接打syso也会直接提示。

最赞回答 / Nicco_
bytes返回的是读到字节的个数啊,和具体什么字节无关,只表示一个长度.

已采纳回答 / FarFromAnyRoad
为什么乱码肯定是乱码啊,  你使用了DataOutputStream,把int long String 都存了进去。你打开这个文件,使用系统的notepad程序,notepad程序不知道你这个什么编码,用了ansi,吧intlong什么都放在一起当GBK处理了。怎么做不乱码不要用记事本打开DataOutputStream创建的东西,看不到乱码,眼不见心不烦。你自己知道是什么,用DataInputStream或者InputStream能取出来用就行了。

已采纳回答 / 下线123
记事本里采用的是默认编码是ANSI<...图片...>,但是你项目中有很多编码方式,java默认的是utf-16be,你写汉字时使用的是writeUTF()这使用的是utf-8编码,你代码中也有注释的,所以编码方式不统一,自然会出现乱码

已采纳回答 / qq_一人的征程_0
看API文档的解释,the total number of bytes read into the buffer, or -1 if there is no more data because the end of the file has been reached.读到数据字节个数,如果没有读到数据时,返回-1

最赞回答 / qq_一雨成秋_0
明白了。乱码才是正常的,因为序列化和反序列话是基于二进制流的,序列话便是把Student对象的信息以二进制存储在文件obj.bat中,用文本编辑器打开自然是乱码。只有通过反序列话才能将存储的二进制读取出来,然后显示在控制台上。
课程须知
亲,为了更好的学习本门课程,需要您对二进制的知识有所了解,还要熟悉Java的基本语法和面向对象的知识。
老师告诉你能学到什么?
1、了解文件编码。 2、能够对文件和目录进行管理操作。 3、能够应用字节流和字符流对文件进行读写操作。 4、能够对对象进行序列化和反序列化。

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消