【幻化万千戏红尘】qianfengDay18-java基础学习:文件流、内存流、缓冲流

时间:2021-10-03 01:10:19

 

 

 

课程回顾:

 

自定义泛型

受限泛型

File:操作系统中的文件或目录

mkdir

mkdirs

createNewFile

getName

length

renameTo

delete

listFiles

 

I/O:数据通信的管道

1、按照流向

2、按照单位

3、按照功能

 

4大流的祖类,都是抽象类

InputStream

OutputStream

Reader

Writer

 

 

 

 

 

 

 

 

今日内容:

输出流,如果文件不存在,会自动创建(如果对应的目录不存在,就会报错)

输入流,如果文件不存在,就会报错

 

 

节点流:直接操作数据的流

1、文件流

2、内存流

处理流:操作流的流

 

 

一、文件流:操作文件的流:数据存储在文件中 节点流

1、FileWriter:文件输出字符流,常常用来写出字符的内容

常用方法:

write:写出,可以写出一个字符,字符数组,字符串

flush:刷新,为了及时将数据写入到文件中

 

2、FileReader:文件输入字符流

read:读取,读取一个字符,读取指定长度的字符

skip:跳过,跳过指定个数的字符

 

3、FileOutputStream:文件输出字节流

常用方法:

write:写出,写出一个字节、字节数组

flush:刷新,将缓冲区内的数据写出到文件中

 

4、FileInputStream:文件输入字节流

常用方法:

read:读取,读取一个字节,字节数组

skip:跳过,跳过指定个数的字节

 

 

 

注意:\r在控制台的作用和文件中的作用不一样

\r在控制台:光标移到到首位,然后将\r后面的字符覆盖前面的内容

\r在文件中,起到换行的作用

在windows下:\r\n起到换行的作用(通用)

 

练习:请写出20个随机字母,并读取

 

二、内存流:操作内存的流:数据存储在内存中 节点流

1、ByteArrayOutputStream:字节数组输出字节流:内存输出字节流

常用方法:

write:写出

flush:刷新

toByteArray:将内部数据源返回,byte数组

2、ByteArrayInputStream:字节数组输入字节流:内存输入字节流

常用方法:

read:读取,字节

skip:跳过

一般当一个资源不需要进行本地化保存的时候,我们会使用内存流

因为内存流效率很高

 

三、缓冲流:提高读写效率  过滤流

1、BufferedWriter:缓冲输出字符流

常用方法:

write:写出

flush:刷新

newLine:写入换行符

 

2、BufferedReader:缓冲输入字符流

常用方法:

read:读取,字符

skip:跳过,字符

readLine:读取一行,返回字符串

 

 

3、BufferedOutputStream:缓冲输出字节流

常用方法:

write:写,字节

flush:刷新

 

4、BufferedInputStream:缓冲输入字节流

常用方法:

read:读取,字节

skip:跳过,字节

 

 

设计模式之装饰者模式:

包装者模式

涉及到的角色:

1、抽象父类或接口

2、装饰者类(子类或实现类)

1、私有的父类对象

2、构造方法对父类对象实例化

3、重写需要扩展的方法

3、子类或实现类

该模式主要是为了扩展方法

 

 

 

 

 

 

 

 

明天:

转换流

对象流

打印流

数据流