java学习day27---(流的分类)
2021/8/5 9:06:26
本文主要是介绍java学习day27---(流的分类),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、流的分类
字节流
OutputStream抽象类 子类:FileOutPutStream
InputStream抽象类 子类:FileInputStream
输出流
FileOutPutStream fos=new FileOutPutStream(D:\\abc.txt)
1.创建流对象 2.开启内存到文件的通道 3.没有文件,创建这个文件
字节流读写都是字节!
fos.write(97) // 在文本中写入97字节,经过微软文本编辑器解码后显示出来是字母a
windows的文本编辑器很强大,可以根据文本来选择编码集
流必须手动释放:fos.close() 垃圾回收器不会自动回收
续写操作:在构造方法后面
FileOutPutStream fos=new FileOutPutStream(D:\\abc.txt,true)
标准捕获写法
输入流
必须保证输入的文件存在,不存在会抛出异常
FileInPutStream fis=new FileInPutStream(D:\\abc.txt)
int read() 返回值是字节,末尾就返回-1
读取全部字节:
int by; while((by=fis.read())!=-1){ System.out.println(by); }
int read(byte[] b) 返回值是读取到的字节个数,将读取到的字节依次存入变量b中
字节流不能读中文!
缓冲流
在文件和内存之间开辟一个缓冲区,提高传输效率
构造方法要传入一个字节流
FileInPutStream fis=new FileInPutStream(D:\\abc.txt) BufferedInputSream bis=new BufferedInputSream(fis);
之后操作就操作缓冲流就行了,关闭也关闭缓冲流
缓冲区默认大小:8192字节
将缓冲区的数据刷新到文件中:flush()
close()也能刷新一次,但是刷新后就关闭流了
字符流
字符流=字节流+编码集 使用缓冲区来解码
reader类,抽象父类,构造函数要传入一个字节流
InputStreamReader isr=new InputStreamReader(new FileInPutStream(D:\\abc.txt))
输入字符流和输出字符流的编码集可以不一样!
输入字符流的编码集要和读取文本的编码集一样,不然读取就是乱码
输出字符流的编码集要和打开这个文本的编辑器编码集一样
windows的文本编辑器强大,会根据文本的编码集来解码,因此可以打开任意编码集的文本
FileReader类
文本便捷类
支持整行读取:readerLine();
字符缓冲流
newLine()换行
字节流:掌握一次读写数组
字符流:掌握一次读写数组、一次读写一行
这篇关于java学习day27---(流的分类)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略