IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结

文章目录

    • IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结
  • 前言
  • 一、File
    • 1.File类的概述和构造方法
    • 2.File类创建功能
    • 3.File类判断和获取功能
    • 4.File类删除功能
  • 二、字节流
    • 1.IO流的概述和分类
    • 2.字节流写数据
    • 3.字节流写数据的两个小问题
    • 4.字节流写入数据假异常处理
    • 5.字节流读数据(重点)
    • 6.字节缓冲流
    • 7.如何选择怎样得数据读取呢?
  • 三、字符流
    • 1.为什么会出现字符流?
    • 2.字符串中的编码解码问题
    • 3.如何实现解决编译解码的问题
    • 4.字符流写数据的方法
    • 5.字符流读数据的方法
    • 6.字符流复制文件
    • 7.字符缓冲流
    • 8.字节,字符流小结
    • 9.复制文件的异常处理
  • 四、特殊操作流
    • 1.标准输入流
    • 2.标准输出流
    • 3.打印流
    • 4.对象序列化流与对象反序列化流(它是基于字节流上的)
    • 5.解决对象序列化流的三个问题
    • 6.Properties
  • 总结


前言

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出

一、File

1.File类的概述和构造方法

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第1张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第2张图片
通过如上的图相信对文件打的相关应用已经有了初步的认识,因为封装的不是真正存在的文件,仅仅是一个路径名而已,所以没有那个路径的文件也可以写,不会报错,将来是把不存在的转换为具体存在的。

2.File类创建功能

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第3张图片
这里需要注意的是:不能根据目录来判断是创建的文件还是目录,而是通过调用的方法来判断的,路径那个只是名字而已,文件和目录的名字也不能是一样的

3.File类判断和获取功能

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第4张图片

4.File类删除功能

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第5张图片
注意:File的相关操作与字节流没有继承的关系,所以要删除文件的话还是的用File的删除功能才可

二、字节流

1.IO流的概述和分类

概述
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第6张图片
分类
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第7张图片

2.字节流写数据

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第8张图片
记得一定要释放资源

3.字节流写数据的两个小问题

字节流写数据如何换行
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第9张图片不同的操作系统的换行是不一样的
字节流写数据如何实现追加写入
在这里插入图片描述
值得注意的是是在文件的后面添加,而原来的数据还是有的,所以在用的时候就要考虑一下是怎样使用自己的文件的

4.字节流写入数据假异常处理

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第10张图片
就是简单的异常处理而已,如果不使用处理的话就抛出就可以了

5.字节流读数据(重点)

一次读一个字节的数据
在这里插入图片描述
标准的代码格式就是这样的
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第11张图片
一次读一个数组的数据
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第12张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第13张图片
字节流读数据其实很简单,这里需要注意的是字节流读数据的话可以有两种方法,至于使用怎样的方法就得取决于自己得使用就行了

6.字节缓冲流

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第14张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第15张图片

7.如何选择怎样得数据读取呢?

在这里插入图片描述
从图中可以看出字节缓冲流得读取比基本得字节读取要快很多,如果要节省时间得话就可以考虑用字节缓冲流来进行字节流得读取

三、字符流

1.为什么会出现字符流?

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第16张图片
所以他的底层操作的实质还是字节流
编码表
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第17张图片
这里需要注意的是用的什么编码就必须用对应的解码,否则就会出现乱码的情况

2.字符串中的编码解码问题

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第18张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第19张图片

3.如何实现解决编译解码的问题

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第20张图片
其实写的时候是写在了缓冲区,并没写在文件里,可以刷新,也可以关闭流它会自动的刷新

代码理解
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第21张图片

4.字符流写数据的方法

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第22张图片

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第23张图片

5.字符流读数据的方法

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第24张图片

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第25张图片
字节流与字符流的读数据的思想是一样的只不过一个是字符,一个是字节而已

6.字符流复制文件

其方法和字节流的方法一样,只是一个是字节一个是字符而已
方法一:一个一个的字符进行的复制
方法二:一个字符数组一个字符数组的复制

准换流
OutputStreamWriter 他又一个子类是:FileWriter
InputStreamReader 它有一个子类是: FileReader
我们在复制文件等相关操作的时候可以用他的子类进行操作,书写更加的简单,但是,在进行编码问题解决的时候还是得用转换流才可以

7.字符缓冲流

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第26张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第27张图片
字符缓冲流的特有功能
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第28张图片
那么可以做什么呢?
我们可以通过其中特有的功能进行文件的复制等
需要注意的是readline只是读的是内容,不读其他的

8.字节,字符流小结

(此时有个使用的问题就是用哪儿文件的读取就写哪儿,写在一起容易出问题,还有就是一定要释放资源)
字节流

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第29张图片
字符流
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第30张图片

关于乱码的问题
个人认为出现乱码是因为如果用的是字节流的话用char来强制转换显示的话就是只有其中的一部分并没有把一个汉字的那个文字表达组如(【-1,23,36】)表达完整,但是如果用new String()来显示的话会表达完整(可能是里面有相应的方法,具体不清楚,知道就行了),如果用的是字符流的话就是用的默认的编码以及你相应要求的编码来表达,所以就不会出现乱码的问题了

9.复制文件的异常处理

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第31张图片

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第32张图片

四、特殊操作流

1.标准输入流

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第33张图片

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第34张图片

2.标准输出流

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第35张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第36张图片

3.打印流

字节打印流
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第37张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第38张图片
字符打印流
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第39张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第40张图片

4.对象序列化流与对象反序列化流(它是基于字节流上的)

对象序列化流
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第41张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第42张图片
对象反序列化流

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第43张图片

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第44张图片

5.解决对象序列化流的三个问题

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第45张图片
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第46张图片

6.Properties

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第47张图片
代码理解(properties作为map集合的使用)
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第48张图片
properties作为集合特有的方法
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第49张图片

第一个是写数据进入集合
第二个是根据键得到值
第三个是得到键得集合

IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第50张图片

Properties和IO流结合的方法
集合数据写到文件
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第51张图片
文件写到集合
IO流相关知识(File,字节流,字符流,特殊操作流(标准输入流,标准输出流,对象序列化与反序列化,properties与IO流结合))相关知识总结_第52张图片

总结

IO流其实很简单,重点是要掌握其中的字节流读写方法,以及字符流的读写方法和Properties与IO流结合的进行使用。

你可能感兴趣的:(自然语言处理,java,javascript,开发语言)