一、IO流的三种分类方式
1.按流的方向分为:输入流和输出流
2.按流的数据单位不同分为:字节流和字符流
3.按流的功能不同分为:节点流和处理流
二、IO流的四大抽象类:
字符流:ReaderWriter
字节流:InputStream(读数据)
OutputStream(写数据)
三、InputStream的基本方法
intread()throwsIOException读取一个字节以整数形式返回,如果返回-1已到输入流的末尾
voidclose()throwsIOException关闭流释放内存资源
longskip(longn)throwsIOException跳过n个字节不读
四、OutputStream的基本方法
voidwrite(intb)throwsIOException向输出流写入一个字节数据
voidflush()throwsIOException将输出流中缓冲的数据全部写出到目的地
五、Writer的基本方法
voidwrite(intc)throwsIOException向输出流写入一个字符数据
voidwrite(Stringstr)throwsIOException将一个字符串中的字符写入到输出流
voidwrite(Stringstr,intoffset,intlength)
将一个字符串从offset开始的length个字符写入到输出流
voidflush()throwsIOException
将输出流中缓冲的数据全部写出到目的地
六、Reader的基本方法
intread()throwsIOException读取一个字符以整数形式返回,如果返回-1已到输入流的末尾
七、访问文件之FileInputStream和FileOutputStream继承基类用于向文件中输入输出字节
八、访问文件之FileReader和FileWriter继承基类用于向文件中输入输出字符
----输出流在构造函数第二个参数可以设置true意义为跟在已有文件后进行输入
----此类流会抛出FileNotFoundException需要对其进行显示捕捉
九、缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。此处理流的构造方法都得传相对应的基类类型
BufferedReader:提供了readLine方法用于高校读取一行字符串
BufferedWriter:提供了newLine用于写入一个行分隔符也就是换行
BufferedInputStream没多大用处
BufferedOutputStream没多大用处
十、转换流:主要作用将字节流转换成字符流。用处较大!
转换流在构造时可以指定其编码集合
InputStreamReader需要和InputStream套接
OutputStreamWriter需要和OutputStream套接
例:OutputStreamWriterosw=newOutputStreamWriter(newFileOutputStream(文件路径);
方法例:osw.getEncoding();获得流的编码方式
十一、数据流与字节数组流:
数据流主要为实现可以存取Java原始数据类型如long,boolean
数据流是字节流
DataInputStream需要和InputStream套接
DataOutputStream需要和OutputStream套接
DataInputStream方法:readBoolean()readInt()read……()……
readUTF():网络传输常用方法读一个Unicode字符串
DataOutputStream方法与DataInputStream基本对应为写的方法
//此构造函数等于已可以往一个字节数组里输入内容
ByteArrayOutputStreambaos=newByteArrayOutputStream();
//此方法为获取一个字节数组方法返回字节数组