一、IO流的三种分类方式
1.按流的方向分为:输入流和输出流
2.按流的数据单位不同分为:字节流和字符流
3.按流的功能不同分为:节点流和处理流
二、IO流的四大抽象类:
字符流:Reader Writer
字节流:InputStream(读数据)
OutputStream(写数据)
三、InputStream的基本方法
int read() throws IOException 读取一个字节以整数形式返回,如果返回-1已到输入流的末尾
void close() throws IOException 关闭流释放内存资源
long skip(long n) throws IOException 跳过n个字节不读
四、OutputStream的基本方法
void write(int b) throws IOException 向输出流写入一个字节数据
void flush() throws IOException 将输出流中缓冲的数据全部写出到目的地
五、Writer的基本方法
void write(int c) throws IOException 向输出流写入一个字符数据
void write(String str) throws IOException将一个字符串中的字符写入到输出流
void write(String str,int offset,int length)
将一个字符串从offset开始的length个字符写入到输出流
void flush() throws IOException
将输出流中缓冲的数据全部写出到目的地
六、Reader的基本方法
int read() throws IOException 读取一个字符以整数形式返回,如果返回-1已到输入流的末尾
常用的IO流
字节输入流 InputStream inputStream = new FileInputStream(resourceFile);
字节输出流 OutputStream outputStream = new FileOutputStream(targetFile)
字符输入流 InputStreamReader inputStream =
new InputStreamReader(new FileInputStream(resourceFile))
字符输出流 OutputStreamWriter outputStream =
new OutputStreamWriter(new FileOutputStream(targetFile))
这次加上字节缓冲流
数据输入流 DataInputStream inputStream =new DataInputStream(
new BufferedInputStream(new FileInputStream(resourceFile)));
数据输出流 DataOutputStreamoutputStream =new DataOutputStream(
new BufferedOutputStream(new FileOutputStream(targetFile)))
对象输入流 ObjectInputStream inputStream = new ObjectInputStream(
new BufferedInputStream(new FileInputStream(resourceFile)))
对象输出流 ObjectOutputStream outputStream = new ObjectOutputStream(
new BufferedIOutputStream(new FileOutputStream(targetFile)))
//此构造函数等于已可以往一个字节数组里输入内容 (就是将字节流放入内存中)
ByteArrayOutputStream bos = new ByteArrayOutputStream ()
类似于 byte[] buf = new byte[1024] 以便于写入内容
//此构造函数等于将刚才放入内存中的数据读取出来
ByteArrayInputStream bis=new ByteArrayInputStream(bos.toByteArray())
类似于 上面的buf在写入字节后,放入该字节流中 以便于读取内容
常用的场景是将以上对象放入 数据流中与对象流中 例如:
数据输入流 DataInputStream inputStream =new DataInputStream(bis);
数据输出流 DataOutputStreamoutputStream =new DataOutputStream(bos )
对象输入流 ObjectInputStream inputStream = new ObjectInputStream(bis)
对象输出流 ObjectOutputStream outputStream = new ObjectOutputStream(bos )
常用领域
在数据的传输中应用的比较多 例如socket服务器与客户端的数据交互
还有就是 inputStream 是所有输入流的父接口
outputStream是所有输出流的父接口
至于File对象就没什么可以说的了 该对象可以是一个文件夹 也可以是一个具体的文件 通过isFile()方法判断
可以获取文件的名字,路径 等等信息