0
点赞
收藏
分享

微信扫一扫

JAVA的IO流(字符,字节)

天涯学馆 2022-02-18 阅读 37
javalinqp2p

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() 写一个换行符,根据系统不同,这里换行符也是不一样的。

举报

相关推荐

0 条评论