<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # JAVA之旅(二十九)——文件遞歸,File結束練習,Properties,Properties存取配置文件,load,Properties的小練習 * * * > 我們繼續學習File ## 一.文件遞歸 > 我們可以來實現一個文件管理器,簡單的,但是在此之前,我們先來做點小案例 ~~~ package com.lgl.hellojava; import java.io.File; public class HelloJJAVA { public static void main(String[] args) { File dir = new File("E:\\AndroidDelepoer"); showDir(dir); } private static void showDir(File dir) { System.out.println("目錄:" + dir); File[] fils = dir.listFiles(); for (int i = 0; i < fils.length; i++) { if (fils[i].isDirectory()) { showDir(fils[i]); } else { // 列出根目錄 System.out.println("files" + fils); } } } } ~~~ > 因為目錄中海油目錄,只要使用同一個列出目錄功能的函數完成即可,在列出過程中出現的還是目錄的話,還可以再此的功能,,也就是函數自身調用自身,這種表現形式,或者手法稱為**遞歸** ~~~ //遞歸 private static void method(){ method(); } ~~~ > 你可以看 ~~~ private static void toBin(int num) { while (num > 0) { toBin(num / 2); System.out.println(num % 2); // num = num / 2; } } ~~~ ## 二.File結束練習 > File講到這里也是差不多的講完了,感覺還不錯,有很多知識點,我們就用一個小練習來結束這個知識點吧! * 將一個指定目錄下的java文件的絕對路徑,存儲到一個文本文件中,建立一個java文件列表的文件 ~~~ package com.lgl.hellojava; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class HelloJJAVA { public static void main(String[] args) { /** * 思路: * 1.對指定的目錄進行遞歸 * 2.獲取遞歸過程所有的java文化的路徑 * 3.將這些路徑存儲到集合中 * 4.將集合中的數據寫入到一個文件中 */ File file = new File("f:\\"); java.util.List<File> list = new ArrayList<File>(); fileToList(file, list); // System.out.println(list.size()); File name = new File(file,"HelloJAVA.java"); writeToFile(list, name.toString()); } public static void fileToList(File dir, java.util.List<File> list) { File[] files = dir.listFiles(); for (File file : files) { if (file.isDirectory()) { fileToList(file, list); } else { // 判斷java文件 if (file.getName().endsWith(".java")) { list.add(file); } } } } // 寫入文件 public static void writeToFile(java.util.List<File> list, String javaFileList) { BufferedWriter bufw = null; try { bufw = new BufferedWriter(new FileWriter(javaFileList)); for (File f : list) { String path = f.getAbsolutePath(); bufw.write(path); bufw.newLine(); bufw.flush(); } } catch (IOException e) { try { throw e; } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } ~~~ ## 三.Properties > Properties我們之前就早有接觸了,他是hastable的子類,也就是說它具備map集合的特點,而且他里面存儲的鍵值對都是字符串 * 該對象的特點,可以用于鍵值對形式的配置文件 > 這也是一個工具類,我們可以來學習學習,先來演示一下使用情況吧,我們從set,get說起 ~~~ package com.lgl.hellojava; import java.util.Properties; import java.util.Set; public class HelloJJAVA { public static void main(String[] args) { SetAndGet(); } // 設置和獲取元素 private static void SetAndGet() { Properties prop = new Properties(); prop.setProperty("張三", "20"); System.out.println(prop); String property = prop.getProperty("張三"); System.out.println(property); Set<String> stringPropertyNames = prop.stringPropertyNames(); for (String s : stringPropertyNames) { // 打印姓名 System.out.println(s); // 打印值 System.out.println(prop.getProperty(s)); } } } ~~~ > 一覽無余,打印的結果 ![這里寫圖片描述](http://img.blog.csdn.net/20160713204719522) ## 四.讀取配置文件 > 我們配置文件如果已經存在的話,我們就直接去讀取了 * 我們來演示一下如何將流中的數據存儲到集合中,想要通過鍵值對的形式保存起來 > 說白了就是讀取本地的一個文件,然后通過鍵值對保存起來,我們用代碼來實現 ~~~ /** * 思路 * 1.用一個流和info.txt文件關聯 * 2.讀取遺憾數據,將該行數據進行去切割 * 等號左邊的作為鍵,右邊的就是值 */ private static void ReadTxt(){ try { BufferedReader bufr = new BufferedReader(new FileReader("info.txt")); String line = null; Properties properties = new Properties(); while((line = bufr.readLine()) != null){ System.out.println(line); String [] arr = line.split("="); System.out.println(arr[0]+"...."+arr[1]); //存 properties.setProperty(arr[0], arr[1]); } bufr.close(); System.out.println(properties); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } ~~~ > 這樣我們輸出的就是 ![這里寫圖片描述](http://img.blog.csdn.net/20160713210040814) ## 五.load > JDK1.6以后出現的load就取代了上面的哪個方式,我們一起來實現一下吧 ~~~ private static void loadDemo(){ try { FileInputStream fish = new FileInputStream("info.txt"); Properties properties = new Properties(); //將流中的數據加載進集合 properties.load(fish); System.out.println(properties); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } ~~~ > 這樣就可以達到效果了 ## 六.Properties的小練習 * 用于記錄應用程序運行的次數,如果使用次數已到,那么給出注冊提示,這個很容易想到的是計算器,可是這個程序中,是自增,而且隨著程序而存在的,如果程序退出了,這個計數也同樣的消失,下一次啟動程序又是從0開始了,這樣不是我們想要的 > 我們現在要做的是程序退出之后數據任然存在而且繼續自增,所以我們要創建配置文件去記錄使用次數 > > Ok,我們用鍵值對的形式保存 ~~~ package com.lgl.hellojava; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; public class HelloJJAVA { public static void main(String[] args) { try { Properties properties = new Properties(); File file = new File("count.ini"); if (!file.exists()) { file.createNewFile(); } FileInputStream fis = new FileInputStream(file); properties.load(fis); int count = 0; String value = properties.getProperty("time"); if (value != null) { count = Integer.parseInt(value); if (count >= 5) { System.out.println("你余額不足呀!"); } } count++; properties.setProperty("time", count + ""); FileOutputStream fos = new FileOutputStream(file); properties.store(fos, ""); fos.close(); fis.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } ~~~ > 我們得到的結果 ![這里寫圖片描述](http://img.blog.csdn.net/20160713213807449) > OK,我們本篇就先到這里,我們下篇在聊 ## 有興趣的可以加群:555974449 版權聲明:本文為博主原創文章,博客地址:http://blog.csdn.net/qq_26787115,未經博主允許不得轉載。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看