新手----解决java中文件流的概念迷糊问题

zhang_m_m 2016-11-24 10:01:32
来无锡培训一个多月,java SE 部分已经学完,不过我对io 数据流的 文件流部分不太理解 file ,fileRead,fileinputstream 等几个类的功能作用有点迷糊,经过半天的百度学习,终于有所收获。

首先 什么是流: 流是一个抽象概念,直白点,他就是一个过程,是一个从后备储存器读取数据和写入数据的过程,当然在写入和读取的中间,还有一个数据处理的过程。 流,他作为一个过程,也有自己的存储空间,他的存储空间就相当于一个管道。将数据放入管道的过程就是new 流的过程,比如需要将一个文本文件的内容读取并打印出来,(考虑到是打印内容,所以不能用字节流,因为字节流打印出来的是还未编译的二进制数据,所以要用字符流)于是我们可以这样写: new fileRead(''1.txt"); 这句代码的意思就是:将1.txt的文件内容放入 file这个文件流中,就相当于放入了管道。
文件:从初中就开始听所文件这个名词,一直都将文件作为一个抽象的概念放入脑海中,知道今天才明白什么是文件。文件,其实就是一组集合,什么样的集合? 将有意义的一段二进制数(字节)放在一起,组成的集合就是文件。 那么文件有很多种类,视屏文件,音频文件,还有apk文件。事实上,可以将他们分为俩种文件,既文本文件和非文本文件。文本文件和非文本文件的区别在于他存储的数据形式不同,虽然他们都是以二进制数存储,然而对于数据的数据块上,存在区别。文本文件的数据块只能是字节类型,但是非文本类型的文件,其数据块,可以是16位short 类型,也可以是32位int类型。字节是最小的数据块,也就是最小的存储单位,虽然比特更小,但是比特是计算机处理数据的单位。

说了那么多,还有一个更重要的就是,二进制是与编码无关的数据,国际通用,如果在数据传输时,想要读取查看数据,就需要将字节流转换为字符流。
所有putstream 类则是字节流 :
inputstream 读取字节流 ,就是读取字节的管道,将数据放入这个字节流中(管道),就可以从这个管道中读取
字节,而fileinputstream ,就是将文件中的内容以字节形式读取。
例:fileinputstream("1.txt"),将1.txt这个文件中的数据以二进制(事实上,其本生就是二进制数据)形式放入
fileinputstream 流中。
同理,outputstream是写入后备存储的管道,在new 他的时候,必须给他一个存储空间,如文件。就是说他的构造
器的参数必须是一个存储空间。将这个空间放入outputstream 这个管道流,然后调用他的write(参数--写入的数
据)方法,将值写入这个空间中。然而任何数据只要进入这个管道,他的数据都会变成二进制数。

所有Read 类 读取的都是字符流。。
未完待续。。。。。。。
...全文
229 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Defonds 2016-11-29
  • 打赏
  • 举报
回复
可以把这些学习内容,分享到 CSDN 博客里

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧