栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【无标题】day

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】day

IO流

1.IO
    1.1 概述
        流:数据在两设备间的传输

    1.2分类
        按处理数据类型的不同分为:字节流和字符流
        按数据流向不同分为:输入流和输出流(相对于内存来说)
        按功能不同分为:节点流和处理流
            节点流:直接操作数据源
            处理流:对其他流进行处理

    1.3 四大抽象类
                        字节流          字符流
        输入流      InputStream         Reader
        输出流      OutputStream        Writer

    1.4文件流
        1.4.1 FileInputStream
            绝对位置:以系统根目录为准
            相对位置:./表示当前目录
                     ../表示上级目录
                     ../../表示上上级目录

            1. read使用

                读取一个字节,并返回对应的ASCII码值,返回为int型,读完了返回-1
                
                //创建字节输入流,在eclipse中,./定位当前项目,不是当前文件
                try{
                    FileInputStream fis = new FileInputStream("路径");
                    int data = 0;
                    while((data = fis.read()) != -1){
                        System.out.print((char)data);
                        //关闭资源
                        fis.close();
                    }
                }catch(IOException e){
                    e.printStackTrace();
                }

                FileInputStream fis = null;
                try{
                    fis = new FileInputStream("./src/day_19/123.txt");
                    int data = 0;
                    while((data = fis.read()) != -1){
                        System.out.println((char)data);
                    }
                }catch(IOException e){
                    e.printStackTrace();
                }finally{                       //关闭文件
                    try{
                        if(fis != null){
                            fis.close();
                        }
                    }catch(IOException e){
                        e.printStackTrace();
                    }
                }

                //现在 可以自动关闭资源
                try(FileInputStream fis = new FileInputStream("./src/day_19/123.txt");){
                    int data = 0;
                    while ((data = fis.read()) != -1){
                        System.out.println((char)data);
                    }
                }catch(IOException e){
                    e.printStackTrace();
                }

            2.read重载使用
                可以传递一个数组,一次读取会把该数组读满/读完,但后一次性返回
                返回int型, 相当于一个缓冲区,效率会提升
                
                try(……){
                    byte[] bytes = new bytep[20];
                    int temp = 0;
                    while(……){
                        //read返回的是档期那读取的元素个数,所以我们可以指定读多少,以防会出现数据重复
                        // 数组,起始位置,个数
                        System.out.println(new String(bytes,0,temp));
                    }
                }catch(){}

        1.4.2 FileReader
                一次性读取一个字符,也就是两个字节,主要用于读取纯文本文件,解决乱码问题

        1.4.3 FileOutputStream
            字节输出流,把数据写到指定文件中
            如果文件不存在会自动创建该文件,但不会创建目录(文件夹)

            //覆写写入,当创建该文件的输出流对象的时候,就会把该文件内容全部清除
            //创建对象时,传入第二个参数 true 说明时追加写入,不会清空该文件

        1.4.4 FileWriter
            新增了可以写出字符串的方法重载
                char[] chars = {'a','c'};
                fw.write(chars);

    1.5 缓冲流

                                字节流                      字符流
        文件输入流          BufferedInputStream         BufferedReader
        文件输出流          BufferedOutputStream        BufferedWriter

        1.5.1 BufferedReader
            //创建字符输入流
            //创建字符输入缓冲流对象
            String temp = null;
            while ((temp = br.readLine()) != null){
                System.out.println(temp);
            }

        1.5.2 BufferedWriter
            bw.write("");
            bw.write("");
            //刷缓存
            bw.flush();

    1.6 转换流
                    输入流                          输出流
                InputStreamReader           OutputStreamWriter

            将字节流转换为字符流

    1.7 打印流
        创建输出流,封装为打印流
        打印流默认打印到控制台
        更改打印流,打印到指定文件中: System.setOut(ps);

    1.8数据流
        必须保证顺序和类型一致

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/713694.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号