隨筆 - 20  文章 - 57  trackbacks - 0
          <2010年11月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          51CTO

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜


          在Java中,Everything is Object!所以在文件中,要不例外!

          在Java中,可以用File類來表示一個文件!!!(注意這里的文件可以是所有文件,包括文件夾)


          下面的代碼表示一個文件:

          public class Demo {

              public static void main(String[] args){
                 
                  File f = new File("e:\\file");
                 
                  if(f.isDirectory()){
                      System.out.println(f.getPath());
                  }
              }
          }

          運行結果是:

          代碼中isDirectory()方法是判斷文件是文件夾還是一個文件(這里可能有點迷糊),也可以這么理解,我所說的文件夾就是一個目錄,
          getPath()方法是打印文件(這里指的是file文件夾)的路徑!!!


          看看下面的代碼還有注釋:

          /**
           *
           *          File.speparator的作用是判斷在不同的系統中斜杠的方向
           *
           * 在windows中斜杠的方向是向右斜的\\
           * 在Linux  中斜杠的方向是向左斜的//
           *
           *
           *         File中createNewFile方法:
           *          當且僅當不存在具有此抽象路徑名指定名稱的文件時,不可分地創建一個新的空文件。
           *          檢查文件是否存在,若不存在則創建該文件,這是單個操作,對于其他所有可能影響該文件的文件系統活動來說,該操作是不可分的。
           *   
           *            注:此方法不應該 用于文件鎖定,因為所得協議可能無法可靠地工作。應該使用 FileLock 機制替代。
           *
           *
           */


          import java.io.File;


          public class Demo01 {
              public static void main(String[] args) throws Exception{
                 
                  File f;
                 
                  f = new File("e:" + File.separator + "file" + File.separator + "io.txt");
                  System.out.println(f.createNewFile());
              }

          }
          ===================================
          運行結果是:




          大家注意,如果你的直接復制這些代碼的話,可能會出現以下異常


          看看大家都明白了吧! 系統找不到指定的文件,就是在e盤下新建一個file文件夾就可以啦!!!

          下面代碼詳細的介紹了File類中的createNewFile()方法:

          /**
          *
          *         File中createNewFile方法:
          *          當且僅當不存在具有此抽象路徑名指定名稱的文件時,不可分地創建一個新的空文件。
          *          檢查文件是否存在,若不存在則創建該文件,這是單個操作,對于其他所有可能影響該文件的文件系統活動來說,該操作是不可分的。
          *   
          *            注:此方法不應該 用于文件鎖定,因為所得協議可能無法可靠地工作。應該使用 FileLock 機制替代。
          *         返回:是布爾型
          *
          */

          import java.io.File;

          public class Demo02 {
              public static void main(String[] args) throws Exception{
                  File f = new File("f:\\demo.txt");
                  System.out.println(f.createNewFile());
              }

          }


          運行結果如下:




          下面介紹一下File類中delete()方法,代碼如下:

          /**
           *
           *             要操作一個文件,必須要找到這個文件
           *             在Java中,只有File類能表示一個文件,所有用File表示一個文件
           *             File的屬性就是文件的路徑,虛擬機會根據File類的參數找到指定的文件
           *             找到問及那后可以用File類的方法進行操作!
           *
           *             delete()方法可以刪除一個文件或者一個整個文件夾(整個目錄),返回結果是布爾類型!!
           *
           * */



          import java.io.File;

          public class Demo11 {

              public static void main(String[] args) {
                 
                  File f = new File("f:\\demo.txt");
                 
                  f.delete();
                  if(boo){
                      System.out.println("成功刪除文件");
                  }
              }
          }

          這個程序運行的結果:



          下面的代碼是介紹查看一個文件的目錄,以及判斷這個文件是否是文件夾,代碼如下:

          /**
           *
           *         File的一個方法File.getPath()
           *                     是將此抽象路徑名轉換為一個路徑名字符串。
           *
           *         File的exists方法
           *                     是測試此抽象路徑名表示的文件或目錄是否存在。
           *
           *
           *         File的getParent()方法
           *                     是返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回 null
           *
           * */

          import java.io.File;

          public class Demo21 {

              public static void main(String[] args) {

                  File f = new File("f:" + File.separator + "demo.txt");
                  System.out.println(f.getPath());
                  System.out.println(f.getParent());
                  if(f.exists()){
                      f.delete();
                  }
                  else{
                      try{
                          System.out.println(f.createNewFile());
                      }catch(Exception e){}
                  }

              }

          }
          運行結果:


          再看一個判斷目錄的方法:


          /**
           *
           *         File的一個方法File.getPath()
           *                     是將此抽象路徑名轉換為一個路徑名字符串。
           *
           *         File的isDirectory()的方法
           *                     是測試此抽象路徑名表示的文件是否是一個目錄。
           *         當且僅當此抽象路徑名表示的文件存在且 是一個目錄時,返回 true;否則返回 false。   
           *
           *
           * */

           
          import java.io.File;

          public class Demo51 {
             
              public static void main(String[] args){
                  File f = new File("f:" + File.separator + "aa");
                  System.out.println(f.getPath());
                  System.out.println(f.isDirectory());
              }

          }

          運行結果:



          注意下一個代碼,可能對你很有幫助啊!!

          /**
           *
           *             File的list()方法可以:
           *             返回一個字符串數組,
           *             這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。
           *
           * */

          import java.io.File;

          public class Demo61 {

              public static void main(String[] args) {
                 
                  File f = new File("f:\\book");
                 
                 
                  //使用list列出
                  //列出的只是一個名稱
                  String[] str = f.list();
                  for(int i=0;i<str.length;i++){
                      System.out.println(str[i]);
                  }

              }

          }
          這個程序的運行結果是你目錄下的文件:



          下面的程序 你可能會很感興趣!因為你想玩HK,或者你想給別人整個惡作劇,你必須要掃描下他的電腦,以下方法就實現了怎樣去掃描一個電腦里的所有文件(我的代碼選擇的是掃描C盤下的所有文件,如果你想掃描其他盤,只要把文件改一下就OK啦)

          import java.io.File;

          public class Demo81 {

              public static void main(String[] args) {
                 
                  String str = "C:\\";
                  File f = new File(str);
                  fun(f);
              }
             
              //要不斷列出,因為給出的File類對象可能是一個目錄
              public static void fun(File f){
                  //判斷給定的路徑是否是目錄,如果是目錄在列出
                  if(f.isDirectory()){
                      File[] file = f.listFiles();
                      //再依次循環進行判斷
                      try{
                          for(int i = 0;i < file.length;i++){
                              //繼續把內容傳入到fun方法之中進行驗證
                              fun(file[i]);
                          }
                      }catch(Exception e){}
                  }
                  else{
                      System.out.println(f);
                  }
              }

          }


          運行結果我就不貼出來了,因為C盤的文件太多啦!!!如果你想知道,自己把代碼帶下看看,你會很吃驚的!你會想原來掃描的原理這么簡單!!!







          posted on 2010-11-07 23:05 tovep 閱讀(59670) 評論(2)  編輯  收藏

          FeedBack:
          # re: IO流_Java_File類總結 2011-08-10 14:04 dfg
          htgtttttttt  回復  更多評論
            
          # re: IO流_Java_File類總結 2014-10-06 15:42 頭發點擊放大
          最后的要加靜態  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主頁 主站蜘蛛池模板: 九龙城区| 桦南县| 和顺县| 太和县| 义乌市| 额尔古纳市| 河池市| 嘉兴市| 双桥区| 木兰县| 益阳市| 乡城县| 花莲市| 巴林左旗| 襄垣县| 安溪县| 浏阳市| 乐陵市| 蕉岭县| 濮阳县| 井冈山市| 德清县| 邢台市| 大厂| 潼南县| 乡宁县| 贡嘎县| 太和县| 历史| 广安市| 酉阳| 济南市| 德阳市| 高阳县| 宁陵县| 安岳县| 腾冲县| 策勒县| 寻甸| 牙克石市| 广饶县|