JAVA的IO流(字符,字节)

本文详细介绍了JAVA的IO流,包括输入流和输出流,以及字节流和字符流的使用。字节流分为字节输入流InputStream和字节输出流OutputStream,如FileInputStream和FileOutputStream,以及它们的缓冲流BufferedInputStream和BufferedOutputStream。字符流由Reader和Writer构成,如FileReader和FileWriter,以及对应的缓冲流BufferedReader和BufferedWriter。字符流使用了编码表,提供了一次读取一行数据的便利。
摘要由CSDN通过智能技术生成

IO:指的是设备之间进行数据传入的流
按照流向分类:
    输入流
    输出流
按照数据类型分类:
    字节流
        A:字节输入流 InputStream
            FileInputStream:
            FileInputStream fis = new FileInputStream("读取数据的文件名");
            字节缓冲输入流:BufferedInputStream
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("读取数据的文件名"));
            //注意:这里的文件必须提前存在
        字节输入流读取数据两种方式:
            1、一次读取一个字节
            int b = 0;
            while((b=bis.read())!=-1){
                System.out.print((char)b);
            }
            bis.close();

            2、一次读取一个字节数组
            byte[] bytes = new byte[1024];
            int length = 0;
            while((length = bis.read(bytes))!=-1){
                System.out.print(new String(bytes,0,length));
            }
            bis.close();


        B: 字节输出流 OutputStream
            FileOutputStream:
                FileOutputStream fos = new FileOutputStream("写文件的名字");
            字节缓冲输出流:BufferedOutputStream
                    BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(写文件的名字));
            //注意:这里文件,可以不存在,之后会自动创建
        写数据的方式:
                1、一次写一个字节
                2、一次写一个字节数组
                3、一次写一个字节数组的一部分

    字符流(转换流) = 字节流 + 编码表
        A: 字符输入流    Reader
            InputStreamReader:
            InputStreamReader isr = new InputStreamReader(new FileInputStream("读取数据的文件名"));
            简化写法:FileReader
                FileReader fr = new FileReader("读取数据的文件名");
            普通字符输入流读取数据两种方式:
                1、一次读取一个字符
                    int ch = 0;
                    while((ch = fr.read())!=-1){
                        System.out.print((char) ch);
                    }
                    fr.close();
                2、一次读取一个字符数组
                    char[] chars = new char[1024];
                    int length = 0;
                    while((length = fr.read(chars))!=-1){
                        System.out.print(new String(chars,0,length));
                    }
                    fr.close();
            字符缓冲输入流:BufferedReader
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("读取数据的文件名")));
            BufferedReader br = new BufferedReader(new FileReader("读取数据的文件名"));
                字符流读取数据的第三种方式:一次读取一行 readLine()
                String s = null;
                while((s = br.readLine())!=null){
                    System.out.print(s);
                }
                br.close();

        B: 字符输出流 Writer
            OutputStreamWriter:
            OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("写文件的名字"));
            简化写法:FileWriter
                FileWriter fw = new FileWriter("写文件的名字");

            写数据的方式:
                一次写一个字符
                一次写一个字符数组
                一次写一个字符数组的一部分
                一次写一个字符串
            高效流,字符缓冲输出流:BufferedWriter
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("写文件的名字")));
            BufferedWriter bw = new BufferedWriter(new FileWriter("写文件的名字"));
            字符流特殊的写数据方法:
                newLine() 写一个换行符,根据系统不同,这里换行符也是不一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值