【幻化万千戏红尘】qianfengDay18-java基础学习:文件流、内存流、缓冲流
课程回顾:
自定义泛型
受限泛型
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、子类或实现类
该模式主要是为了扩展方法
明天:
转换流
对象流
打印流
数据流