Java學習之隨堂筆記系列——day19

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結尾,這種文件在開發中成爲屬性文件。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章