IO流

1、IO流,什么是IO?
I:Input
O:Output
通过IO可以完成硬盘文件的读和写。
2、IO流的分类?
有多种分类方式:
一种方式是按照流的方向进行分类:
以内存为参照物,
往内存中去,叫做输入,或者叫读。
从内存中出来,叫做输出,或者叫写。

另一种方式是按照读取数据方式不同进行分类:
有的流是按照字节的方式读取数据,一次读取一个字节byte,等同于一次读取8个二进制

以Stream结尾的流全部为字节流
以Writer/Reader结尾的流全部为字符流

缓冲流

BufferedReader

public class BufferReaderTest01
{
    public static void main(String[] args) throws IOException
    {
        FileReader reader=new FileReader("");
//        当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流。
//        外部负责包装的这个流,叫做:包装流,还有一个名字叫:处理流。
        BufferedReader br=new BufferedReader(reader);
        //br.readLine()方法读取一个文本行,但不带换行符。
        String s=null;
        while ((s=br.readLine())!=null)
        {
            System.out.println(s);
        }
        //关闭流
        //对于包装类来说,只需要关闭最外层流就行,里面的节点流会自动关闭(通过查看源代码)
    br.close();
    }
}

转换流

InputStreamReader

public class BufferedReaderTest02
{
    public static void main(String[] args) throws IOException
    {
        //字节流
        FileInputStream in=new FileInputStream("D:\\draft");
        //通过转换流转换(InputStreamReader将字节流转换成字符流)
        //in是节点流,reader是包装流
        InputStreamReader reader=new InputStreamReader(in);
        //这个构造方法只能传一个字符流,不能传字节流
        //reader是节点流,br是包装流
        BufferedReader br=new BufferedReader(reader);
        //以上三行代码可以嵌套使用
        //BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("D:\\draft")));

        String line=null;
        while ((line=br.readLine())!=null)
        {
            System.out.println(line);
        }
        //关闭最外层
        br.close();
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容