按照数据流向
输入流; 从外界(键盘、网络、文件...)读取数据到内存
输出流;用于将程序中的数据写出到外界(显示器、文件...)
数据源 目的地 交通工具 c-> 文件A --> d -> 文件A 输入流 输出流
按照数据类型
字节流;主要用来处理字节或者二进制对象
字节输入流(InputStream)
字节输出流(OutputStream)
字符流;主要用来处理字符、字符数组或字符串
字符输入流(Reader)
字符输入流(Writer)
IO流分类
字节流: 针对二进制文件 (视频,音频,图片)
字符流:针对文本文件(txt,xml,json,html,md...)
输入流:从外界到内存
输出流:从内存到外界
流的操作三要素:
1,数据源:数据需要从哪里到内存?
2,母对的:数据从内存到哪里?
3,交通工具:
a,选择输入流还是输出流?也可能两个都需要
b,选取最适合的流
字节输出流:
void close()
关闭此输出流并释放与此流相关联的任何系统资源。
void flush()
刷新此输出流并强制任何缓冲的输出字节被写出。
void write(byte[] b)
将 b.length字节从指定的字节数组写入此输出流。
void write(byte[] b, int off, int len)
从指定的字节数组写入 len个字节,从偏移 off开始输出到此输出流。
abstract void write(int b)
将指定的字节写入此输出流。
1,字节流可以不使用flush,字符流必须flush,建议都使用flush
2,close释放流的资源,自带flush
java.io.FileNotFoundException
产生原因:
1,文件盘符不存在
2,文件路径父目录不存在
java.io.IOExceotion: Stream Closed
产生原因:
1,文件流关闭,还在继续使用
文件字节输出流:
构造方法:
FileOutputStream(File file)
创建文件输出流以写入由指定的 File对象表示的文件。
(创建一个向file文件中写数据的输入文件流)
FileOutputStream(File file, boolean append)
创建文件输出流以写入由指定的 File对象表示的文件。
(创建一个向file文件中追加数据的输入文件流)
FileOutputStream(FileDescriptor fdObj)
创建文件输出流以写入指定的文件描述符,表示与文件系统中实际文件的现有连接。
FileOutputStream(String name)
创建文件输出流以指定的名称写入文件。
(创建一个向name文件中写数据的输出文件流)
FileOutputStream(String name, boolean append)
创建文件输出流以指定的名称写入文件。
注意:
在不同操作系统中对换行符的主持不一样
Windows \r \n
Linnx \n
Mac \r
1,字节流在处理换行符(等多只种)方面不方便
2,带append参数的表示追加写入
注意:
1,作为输出流,文件可以不存在,会自动创建,作为输入流,文件必须存在!
IO流 概述
最新推荐文章于 2022-09-20 16:05:17 发布