您好,登錄后才能下訂單哦!
這篇文章主要介紹“java讀寫ini文件、FileOutputStream問題怎么解決”,在日常操作中,相信很多人在java讀寫ini文件、FileOutputStream問題怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java讀寫ini文件、FileOutputStream問題怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在查看文檔的情況下,知道要讀取類似于鍵值對的文件,java已經給我提供了一個叫 Properties的類,簡單如下:
File file = new File("../JavaPractice/a.txt"); try { FileInputStream inputStream = new FileInputStream(file); Properties properties = new Properties(); properties.load(inputStream);//把文件中的內容放在流里面 properties.list(System.out);//通過這個方法把內容打印出來 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);//把文件中的內容放在流里面 // properties.list(System.out);//通過這個方法把內容打印出來 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(); }
打印結果:
b
null
File file = new File("../JavaPractice/a.txt"); try { FileInputStream inputStream = new FileInputStream(file); Properties properties = new Properties(); properties.load(inputStream);//把文件中的內容放在流里面 // properties.list(System.out);//通過這個方法把內容打印出來 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(); }
我以為就這樣就存進去,滿懷欣喜的打開文件,發現并沒有真正的存入值,但是我又試著使用properties.get()方法,卻能得到我放進去的值,很是疑惑,只得再次看api。
File file = new File("../JavaPractice/a.txt"); try { FileInputStream inputStream = new FileInputStream(file); Properties properties = new Properties(); properties.load(inputStream);//把文件中的內容放在流里面 // properties.list(System.out);//通過這個方法把內容打印出來 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);//只有調用這個方法才能寫進文件,因為前面set方法只是寫在流里面,直到調用這個方法才真正的寫入文件里。 inputStream.close(); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
如果把FileOutputStream outputStream = new FileOutputStream(file);放在load前面,那么文件里面所有的信息都會被覆蓋,放在load后面就不會了,因為load后就保存在一個流里面。
因為FileOutputStream outputStream = new FileOutputStream(file);就默認覆蓋文件,直接是文件為空,除非FileOutputStream outputStream = new FileOutputStream(file,true);,所有有的時候初學者會把這些東西搞混淆,最后怎么出錯也不知道。(汗顏!!!我也出過這個錯誤……)
最后細心的朋友可能會發現我并不是.ini文件,對的,我發現并不是只有ini文件才能做這樣的操作,所以我就多試驗了下。
到此,關于“java讀寫ini文件、FileOutputStream問題怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。