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

java讀寫ini文件、FileOutputStream問題

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

java讀寫ini文件、FileOutputStream

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

后來我越想越不對,就回辦公室自己寫了一下,發(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方法得到對應(yīng)值
            System.out.println(properties.get("0"));//如果沒有對應(yīng)的值就為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方法得到對應(yīng)值
            System.out.println(properties.get("0"));//如果沒有對應(yīng)的值就為null

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

我以為就這樣就存進(jìn)去,滿懷欣喜的打開文件,發(fā)現(xiàn)并沒有真正的存入值,但是我又試著使用properties.get()方法,卻能得到我放進(jìn)去的值,很是疑惑,只得再次看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方法得到對應(yīng)值
            System.out.println(properties.get("0"));//如果沒有對應(yīng)的值就為null

            properties.setProperty("java", "love java");//使用此方法存值
            FileOutputStream outputStream = new FileOutputStream(file);
            properties.store(outputStream, null);//只有調(diào)用這個方法才能寫進(jìn)文件,因為前面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);就默認(rèn)覆蓋文件,直接是文件為空,除非FileOutputStream outputStream = new FileOutputStream(file,true);,所有有的時候初學(xué)者會把這些東西搞混淆,最后怎么出錯也不知道。(汗顏?。。∥乙渤鲞^這個錯誤……)

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

    這篇文章主要為大家詳細(xì)介紹了Java基礎(chǔ)學(xué)習(xí)中構(gòu)造方法的概述及注意事項,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)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代表不可重復(fù)的無序集合、List代表可重復(fù)的有序集合、Queue是java提供的隊列實現(xiàn),通過它們不斷的擴(kuò)展出很多的集合類,接下來我們詳細(xì)介紹一下
    2021-11-11
  • Java 線程池全面總結(jié)與詳解

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

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

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

    這篇文章主要為大家詳細(xì)介紹了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批處理失敗重試機(jī)制

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

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

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

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

最新評論

太仆寺旗| 喀喇沁旗| 大庆市| 天峨县| 太康县| 富民县| 收藏| 金湖县| 兴安县| 鞍山市| 龙陵县| 娄底市| 洪雅县| 砚山县| 新闻| 阜南县| 辽中县| 岳阳市| 和硕县| 双峰县| 邵东县| 卓资县| 康定县| 乡宁县| 鸡东县| 伊宁县| 四子王旗| 康保县| 奉节县| 定襄县| 曲阜市| 老河口市| 汉阴县| 新和县| 略阳县| 甘南县| 鄄城县| 两当县| 内江市| 揭东县| 绩溪县|