java io流

什么是IO流

Read Input InputStream 输入
Write Output OutputStream 输出

io流的分类

1.按照流的方向分类
往内存中去叫做输入
从内存中出来叫做输出
2.按照读取数据的方式分类
字节流 是万能的
字符流 为文本文档而存在的、
输入流输出流 字节流 字符流

java中所有的流都在java.io.*下

javaIO流的四大家族

java.io.InputStream
java.io.OutputStream
java.io.Reader
java.io.Writer
都是抽象类
流都需要关闭 .close()
输出流都需要刷新 flush();;清空管道 管道中的剩余文件全部输出

java.io包下的16个流

文件专属:
java.io.FileInputStream(掌握)
java.io.FileOutputStream(掌握)
java.io.FileReader
java.io.FileWriter

转换流:(将字节流转换成字符流)
	java.io.InputStreamReader
	java.io.OutputStreamWriter

缓冲流专属:
	java.io.BufferedReader
	java.io.BufferedWriter
	java.io.BufferedInputStream
	java.io.BufferedOutputStream

数据流专属:
	java.io.DataInputStream
	java.io.DataOutputStream

标准输出流:
	java.io.PrintWriter
	java.io.PrintStream(掌握)

对象专属流:
	java.io.ObjectInputStream(掌握)
	java.io.ObjectOutputStream(掌握)

FileInputStream

学会fileinputstream的框架
byte[] bytes =new byte[4];
在这里插入图片描述

FileInputStream 其他常用方法

int available()

返回流中的剩余的没有读到的字节数量
可以根据这个方法先获得总字节数量
byte[] bytes = new byte[fis.available()];
//直接不需要循环了 直接new 一个总字节数量大小的数组
不适合大文件 因为byte数组不能太大

long skip(long n )

跳过几个字节不读
fis,skip(3);

文件字节输出流 FileoutputStream

文件不存在会新建 会把源文件清空再写入
如果不想清空 再写入是加一个true
在这里插入图片描述
byte[] bytes ={97.98,99,100}
fos.write(bytes)
fos.write(bytes,0,2)/输出一部分;
fos.flush();

把一个字符串写入文件

先把字符串转化为byte数组再写入
在这里插入图片描述

文件复制

从D盘读到内存 输入 input
然后再写到C盘 输出 output
拷贝的过程就是一边读 一边写
在这里插入图片描述

FileReader 文件字符输入流

读取文本
char[ ] chars = new char[4];

FileWriter 文件字符输出流

写到硬盘上

文本文件复制

在这里插入图片描述

缓冲流专属

当一个流的构造方法中需要一个流的时候 被传进来的流叫做节点流
负责包装的叫做包装流
节点流和包装流
在关闭包装流的时候 节点流也会关闭
更加方便 不需要自己创建数组了

br.Readline();

可以一行一行的读

一行一行的读取这个文本文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值