Java学习之随堂笔记系列——day19

本文详细介绍Java中IO流的应用,包括标准输入输出流、打印流、序列化与反序列化流,以及Properties集合的使用。特别强调了Properties集合与IO流结合的方法,用于处理配置文件,是Java开发中不可或缺的知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 案例(重做)
    案例1:将集合中的对象进行排序,排序完成之后存储到文件中。使用TreeSet集合
    案例2:复制单级目录
        copyFolder()   copyFile()
    案例3:复制多级目录
2 标准输入流和输出流(了解)
    System.in:属于字节流,接收控制台输入的内容,使用方式如下:
        方式1:Scanner sc=new Scanner(System.in);
        方式2:BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out:属于字节流,将数据打印在控制台输出,使用方式如下
        System.out.println(数据);
3 打印流(了解)
    字节打印流:PrintStream
        write(97)、print(97)以及println(97)的区别?
            write(97);      //a
            print(97);      //97
            println(97);    //97并且换行
    字符打印流:PrintWriter
        构造方法:
            PrintWriter​(String fileName):根据字符串类型的文件路径创建字符打印流对象,需要手动调用flush方法获取close方法刷新到文件中。
            PrintWriter​(Writer out, boolean autoFlush):创建字符打印流对象,需要一个Writer,参数2表示自动刷新。当调用println ,
                printf ,或format方法时自动刷新。
        成员方法:
           public void println("字符串");

4 序列化流和反序列化流(了解)
    序列化:将对象写到文件中。
    反序列化:将文件中的对象读到内存中。

    序列化流:ObjectOutputStream
        构造方法:ObjectOutputStream​(OutputStream out)
        成员方法:void    writeObject​(Object obj) 将obj对象写到文件中
    反序列化流:ObjectInputStream
        构造方法:ObjectInputStream​(InputStream in)
        成员方法:Object    readObject​()
    注意事项:
        1、序列化的时候,对象需要实现一个Serializable标记型接口。
        2、在反序列化的时候如果出现class文件中的serialVersionUID和保存对象的文件中的serialVersionUID不一致导致的InvalidClassException异常
           解决办法:在Java类中固定serialVersionUID:private static final long serialVersionUID = 42L;
        3、如果某个成员变量不想被序列化,那么使用transient修饰该成员变量
        4、如果序列化了多个对象需要使用使用反序列化流while循环读对象,读到文件的末尾不是返回null,而是抛出一个EOFException异常
          解决办法:
              方式1:使用try...catch处理异常,不打印异常信息。
              方式2:如果是需要将多个对象序列化到文件中,可以先将对象存到集合中,将集合序列化到文件中。(还是序列化一个对象)

5 Properties集合(重点*****)
    概念:Properties是一个双列集合,实现了Map接口。
    构造方法:
        Properties properties=new Properties();
    常规方法:
        Object    setProperty​(String key, String value):根据key存value值,返回值是被替换的value。
        String    getProperty​(String key):根据key获取对应的value值

    Properties集合和IO结合(重点******)
        将集合中的数据存到文件中:(了解)
            void store​(Writer writer, String comments):参数2comments表示添加的数据的描述信息,相当于注释。可以是null表示没有
        将文件中的数据读到集合中(重点掌握******************)
            void load​(Reader reader):读取文件中的数据到集合中。
    Properties集合在开发中的使用:(重点******)
        作为配置文件使用:使用Properties加载配置文件中的数据,在程序中使用。
        特殊:
            1、将来的配置文件格式必须如下:
                itheima003=林青霞
                itheima001=张曼玉
                itheima002=王祖贤
            2、配置文件的后缀名不叫txt,一般是.properties结尾,这种文件在开发中成为属性文件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值