最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java讀寫ini文件、FileOutputStream問題

 更新時間:2023年04月11日 10:04:29   作者:老李與GPT  
這篇文章主要介紹了java讀寫ini文件、FileOutputStream問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

java讀寫ini文件、FileOutputStream

在上課讓學生練習文件讀寫,就讓他們做了一個使用文件保存賬號和密碼的練習,有一個比較愛學的學生就用到了了.ini文件,也就是我們所說的配置文件來保存賬號密碼(學生很聰明,知道用鍵值對的方式保存密碼,作為老師的我很汗顏?。。。。覜]仔細想就說你是不是進行了多次字符串分割來獲取信息的,他說不是,只需要加幾步代碼就可以了。當時沒細想說做出來就好……

后來我越想越不對,就回辦公室自己寫了一下,發(fā)現(xiàn)還是有很多問題的。

在查看文檔的情況下,知道要讀取類似于鍵值對的文件,java已經(jīng)給我提供了一個叫 Properties的類,簡單如下:

    File file = new File("../JavaPractice/a.txt");
        try {
            FileInputStream inputStream = new FileInputStream(file);
            Properties properties = new Properties();
            properties.load(inputStream);//把文件中的內(nèi)容放在流里面
            properties.list(System.out);//通過這個方法把內(nèi)容打印出來

            inputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

打印如下:

-- listing properties --
a=b
12=222
asdasd1=asd111122
12123=123222

如果要直接使用鍵得到值得代碼如下:

File file = new File("../JavaPractice/a.txt");
        try {
            FileInputStream inputStream = new FileInputStream(file);
            Properties properties = new Properties();
            properties.load(inputStream);//把文件中的內(nèi)容放在流里面
//          properties.list(System.out);//通過這個方法把內(nèi)容打印出來
            System.out.println(properties.get("a"));//通過get方法得到對應值
            System.out.println(properties.get("0"));//如果沒有對應的值就為null
            inputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

打印結(jié)果:

b

null

使用properties.set()方法存值

File file = new File("../JavaPractice/a.txt");
        try {
            FileInputStream inputStream = new FileInputStream(file);
            Properties properties = new Properties();
            properties.load(inputStream);//把文件中的內(nèi)容放在流里面
//          properties.list(System.out);//通過這個方法把內(nèi)容打印出來
            System.out.println(properties.get("a"));//通過get方法得到對應值
            System.out.println(properties.get("0"));//如果沒有對應的值就為null

            properties.setProperty("java", "love java");//使用此方法存值
            inputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }   

我以為就這樣就存進去,滿懷欣喜的打開文件,發(fā)現(xiàn)并沒有真正的存入值,但是我又試著使用properties.get()方法,卻能得到我放進去的值,很是疑惑,只得再次看api。

File file = new File("../JavaPractice/a.txt");
        try {
            FileInputStream inputStream = new FileInputStream(file);
            Properties properties = new Properties();
            properties.load(inputStream);//把文件中的內(nèi)容放在流里面
//          properties.list(System.out);//通過這個方法把內(nèi)容打印出來
            System.out.println(properties.get("a"));//通過get方法得到對應值
            System.out.println(properties.get("0"));//如果沒有對應的值就為null

            properties.setProperty("java", "love java");//使用此方法存值
            FileOutputStream outputStream = new FileOutputStream(file);
            properties.store(outputStream, null);//只有調(diào)用這個方法才能寫進文件,因為前面set方法只是寫在流里面,直到調(diào)用這個方法才真正的寫入文件里。
            inputStream.close();
            outputStream.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

new FileOutputStream 的位置有關(guān)系嗎?

如果把FileOutputStream outputStream = new FileOutputStream(file);放在load前面,那么文件里面所有的信息都會被覆蓋,放在load后面就不會了,因為load后就保存在一個流里面。

因為FileOutputStream outputStream = new FileOutputStream(file);就默認覆蓋文件,直接是文件為空,除非FileOutputStream outputStream = new FileOutputStream(file,true);,所有有的時候初學者會把這些東西搞混淆,最后怎么出錯也不知道。(汗顏?。?!我也出過這個錯誤……)

最后細心的朋友可能會發(fā)現(xiàn)我并不是.ini文件,對的,我發(fā)現(xiàn)并不是只有ini文件才能做這樣的操作,所以我就多試驗了下。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Cloud之遠程調(diào)用OpenFeign參數(shù)傳遞

    Spring Cloud之遠程調(diào)用OpenFeign參數(shù)傳遞

    本文介紹了Spring Cloud中使用OpenFeign進行遠程調(diào)用時,參數(shù)傳遞的不同方式,包括傳遞單個參數(shù)、多個參數(shù)、對象和JSON數(shù)據(jù),感興的朋友一起看看吧
    2025-03-03
  • Java實現(xiàn)的圖像查看器完整實例

    Java實現(xiàn)的圖像查看器完整實例

    這篇文章主要介紹了Java實現(xiàn)的圖像查看器,以完整實例形式較為詳細的分析了java處理圖片的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Java基礎(chǔ)學習之構(gòu)造方法詳解

    Java基礎(chǔ)學習之構(gòu)造方法詳解

    這篇文章主要為大家詳細介紹了Java基礎(chǔ)學習中構(gòu)造方法的概述及注意事項,文中的示例代碼講解詳細,對我們學習Java有一定幫助,需要的可以參考一下
    2022-08-08
  • 一文教你利用Stream?API批量Mock數(shù)據(jù)的方法

    一文教你利用Stream?API批量Mock數(shù)據(jù)的方法

    在日常開發(fā)的過程中我們經(jīng)常會遇到需要mock一些數(shù)據(jù)的場景,比如說?mock?一些接口的返回或者說?mock?一些測試消息用于隊列生產(chǎn)者發(fā)送消息。本文將教你如何通過?Stream?API?批量?Mock?數(shù)據(jù),需要的可以參考一下
    2022-09-09
  • Java?Collection?接口和常用方法綜合詳解

    Java?Collection?接口和常用方法綜合詳解

    Collection派生出三個子接口,Set代表不可重復的無序集合、List代表可重復的有序集合、Queue是java提供的隊列實現(xiàn),通過它們不斷的擴展出很多的集合類,接下來我們詳細介紹一下
    2021-11-11
  • Java 線程池全面總結(jié)與詳解

    Java 線程池全面總結(jié)與詳解

    在一個應用程序中,我們需要多次使用線程,也就意味著,我們需要多次創(chuàng)建并銷毀線程。而創(chuàng)建并銷毀線程的過程勢必會消耗內(nèi)存。而在Java中,內(nèi)存資源是及其寶貴的,所以,我們就提出了線程池的概念
    2021-10-10
  • 一文詳解Java中字符串的基本操作

    一文詳解Java中字符串的基本操作

    這篇文章主要為大家詳細介紹了Java中字符串的基本操作,例如遍歷、統(tǒng)計次數(shù),拼接和反轉(zhuǎn)等以及String的常用方法,感興趣的可以了解一下
    2022-08-08
  • mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問題

    mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問題

    這篇文章主要介紹了mybatis foreach遍歷LIST讀到數(shù)據(jù)為null的問題,具有很好的參考價值,希望對大家有所幫助。
    2022-02-02
  • 詳解如何配置Spring Batch批處理失敗重試機制

    詳解如何配置Spring Batch批處理失敗重試機制

    這篇文章主要來和大家一起探討一下如何在Spring批處理框架中配置重試邏輯,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-06-06
  • 深入介紹Spring框架及故障排除

    深入介紹Spring框架及故障排除

    這篇文章主要介紹了深入介紹Spring框架及故障排除,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06

最新評論

福贡县| 嘉峪关市| 桂东县| 筠连县| 克拉玛依市| 安陆市| 遵义县| 民乐县| 蛟河市| 长岭县| 高尔夫| 保德县| 河曲县| 罗城| 承德市| 晋城| 晋中市| 德昌县| 衡东县| 建瓯市| 大丰市| 康保县| 察雅县| 汨罗市| 杭州市| 怀宁县| 新闻| 会东县| 永城市| 通化县| 连平县| 章丘市| 积石山| 福泉市| 北票市| 布尔津县| 九寨沟县| 包头市| 西充县| 邳州市| 福泉市|