java IO流的一些概念和分类以及作用

Java Io流的概念

java的io是实现输入和输出的基础,可以方便的实现数据的输入和输出操作。
注:java把所有的传统的流类型都放到在java io包下,用于实现输入和输出功能。

IO流的分类

  1. 按照流的流向分,可以分为输入流和输出流。
    输入流: 只能从中读取数据,而不能向其写入数据。
    输出流:只能向其写入数据,而不能向其读取数据。

注:java的输入流主要是InputStream和Reader作为基类,而输出流则是主要由outputStream和Writer作为基类。它们都是一些抽象基类,无法直接创建实例。

  1. 按照操作单元划分,可以划分为字节流和字符流。
    字节流和字符流的用法几乎完成全一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的单元是数据单元是8位的字节,字符流操作的是数据单元为16位的字符。

字节流主要是由InputStream和outPutStream作为基类,而字符流则主要有Reader和Writer作为基类。

  1. 按照流的角色划分为节点流和处理流。
    可以从/向一个特定的IO设备(如磁盘,网络)读/写数据的流,称为节点流。节点流也被称为低级流。
    处理流则用于对一个已存在的流进行连接和封装,通过封装后的流来实现数据的读/写功能。处理流也被称为高级流。

IO流的应用作用

*一,字节流(以字节为单位读写数据的)
输入流(超类:InputStream)
包括低级流——(FileInputStream)
高级流——(BufferedInputStream)
——(objectInputStream)

输出流(超类:OutputStream)
包括低级流——(FileOutputStream)
高级流——(BufferedOutputStream)
——(objectOutputStream)

二,字符流(已字符为单位读写数据的)
输入流(超类:Reader)
包括低级流——()
高级流——(BufferedReader)
——(InputStreamReader)

输出流(超类:Writer)
包括低级流——()
高级流——(BufferedWriter)
——(OutputStreamWriter)
——(PrintWriter)

InputStreamReader ,OutputStreamWriter(转换流)唯一的一个可以连接在字节流的字符流
不直接操控它们,但在流的连接中起到重要作用,只能连接在字符流

FileOutputStream fos=new FileOutputStream(“ows.txt”);
OutputStreamWriter ows=new OutputStreamWriter(fos,“想要转换的字符集”);
ows.write(“我曾跨过山和大海”);
ows.close();

FileInputStream fis=new FileInputStream(“ows.txt”);
InputStreamReader isr=new InputStreamReader(fis,“想要转换的字符集”);
int d=-1;
while((d=isr.read())!=-1){
system.out.print((char)d);
}
isr.close();

java IO流的一些概念和分类以及作用_第1张图片

BufferedReader,BufferedWriter(缓冲字符流)可以提高读写效率,还可以按行读写文本数据
PrintWriter——具有自动行刷新的缓冲字符流内部连接BufferedWriter作为其缓冲加速的部分
//写文件数据
PrintWriter pw=new PrintWriter(“pw.txt”,“指定字符集”);
pw.println(“摩擦摩擦~”);
PrintWriter pw=new PrintWriter(bw,true);//自动行刷新

//读文件数据
FileInputStream fis=new FileInputStream(“ows.txt”);
InputStreamReader isr=new InputStreamReader(fis,“想要转换的字符集”);
BufferedReader br=new BufferedReader(isr);
string line =null;
while((line=br.readLine())!=null){
system .out.println(line);
}
br.close();

你可能感兴趣的:(总结)