IO流分类

一、流的概念
  流是一种数据在内存与外部设备之间的中间形式,数据在磁盘或硬盘中是以文件的形式存储,而在内存中是单纯的以字节存储的(数据寄存器),当需要从外部设备读取数据或者从内存输出数据到外部设备时,就需要产生流。
  IO流即输入输出流,这里的输入输出指的是针对内存的输入输出,输入到内存的流即为输入流,从内存输出的流即为输出流。

二、流的作用
  外部设备与内存的数据结构不同,数据通过流的方式在两者之间传输。

三、流相关的类
  java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
  java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。
  java.io.InputStream抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。
  java.io.FileOutputStream类是文件输出流,是字节输出流(OutputStream)类的子类,用于将数据写出到文件。
  java.io.FileInputStream类是文件输入流,从文件中读取字节。

  java.io.Reader抽象类是表示用于读取字符流的所有类的超类,可以读取字符信息到内存中。它定义了字符输入流的基本共性功能方法。
  java.io.FileReader
  java.io.Writer
  java.io.FileWriter

四、流的分类
  根据数据的流向分为:输入流和输出流。
    输入流 :把数据从其他设备上读取到内存中的流。
    输出流 :把数据从内存 中写出到其他设备上的流。
  根据数据传输的单位:字节流和字符流
    字节流:以字节为单位,读写数据的流。
    字符流:以字符为单位,读写数据的流
  根据有无缓冲区:高端流和低端流
    字节缓冲流:BufferedInputStream,BufferedOutputStream
    字符缓冲流:BufferedReader,BufferedWriter

五、流的使用
步骤:

  创建流对象。

  循环读取/写入。

  关闭流。

public class StreamTest {
    public static void main(String[] args) throws IOException {
        //创建输入流对象,产生输入流(字节流)
        FileInputStream file = new FileInputStream("d:/1.txt");
        /*
         * 循环读取
         */
        int in ;
        while((in=file.read())!=-1){
            
        
//强转成字符无法识别汉字,因为一个汉字占用两到三个字节,如果要识别汉字需要使用字符流
        System.out.print((char)in);
        }
        //关闭流
        file.close();
    }
}

 

 

posted @ 2019-11-22 14:44  地中海美少年  阅读(210)  评论(0)    收藏  举报