posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          從File類開始IO系統介紹

          Posted on 2006-10-18 14:17 semovy 閱讀(231) 評論(0)  編輯  收藏 所屬分類: 文件方面
          從File類開始IO系統介紹
          作者: 來源: 更新時間:2006-01-10
          ?????????? 無論學習那種語言都難免要接觸到文件系統,要經常和文件打交道。Java當然也不例外,有些網友覺得IO的設計很煩瑣,有的時候我也有這樣的感覺,其實用的熟練了,倒是覺得這個東西還是挺方便的。在介紹Java IO之前首先介紹一下非常重要的一個類File。

          ????????????? 在看到這個類的名字后你一定認為它代表一個文件,事實上這樣認為并不準確,因為Java中的File類可以代表文件也可以代表目錄。在API doc中說明了這一點,同時把File用abstract pathname來代表。不過想想目錄不也就是特殊的文件嗎?


          ??? File的使用非常的簡單,它有四個構造函數:
          File(String parent,String child)
          File(File parent,String child)
          File(URI uri)
          File(String pathname)
          其中前面兩個可以讓我們在某個已知特定的目錄下新建文件或者目錄,后面兩個我們可以通過pathname或者URI新建文件或者目錄。有一點需要注意,File雖然是一個系統無關的代表,但是pathname的表示是和系統相關的,比如UNIX下"/"表示root目錄,而windows下通常用盤符來表示。比如絕對路徑C:helloworldmingjava,如果是相對路徑的話則不以"/"開頭,一般相對路徑是相對當前目錄的。當我們創建一個File的時候可以通過exists()方法判斷它是否存在,如果不存在我們可以選擇是創建為文件還是創建為目錄。例如
          ?File file = new File("hehe");
          ??if(!file.exists())
          ??{
          ???file.mkdir();?
          ??}?
          ?for(int i=0;i <5;i++)
          ???{
          ????File listFile = new File(nextFile,"ming"+i+".txt");
          ????if(!listFile.exists())
          ????{
          ?????listFile.createNewFile();?
          ????}
          ???
          ???}
          如果我們已經知道一個File對象,希望在他的目錄之下新建文件,那么就可以使用第一個構造器了。比如
          File nextFile = new File(file,"ming\hehe");
          ??if(!nextFile.exists())
          ??{
          ???nextFile.mkdirs();?
          ??}
          注意創建多層目錄的時候要用mkdirs()。我們還可以列舉出一個目錄下的文件列表,通過list()方法可以得到一個String[]類型的數組,這就是目錄下的文件名稱。
          ?String[] list = nextFile.list();
          ???for(int j = 0;j<list.length;j++)
          ???{
          ????System.out.println(list[j]);?
          ???}
          File的使用并不復雜,如果有問題多參考一下API doc一般就可以解決了,下面是我寫的一個小例子,說明如何使用File文件。
          import java.io.*;
          import java.net.*;


          public class TestFile
          {
          ?public static void main(String[] args) throws IOException
          ?{
          ??File file = new File("hehe");
          ??if(!file.exists())
          ??{
          ???file.mkdir();?
          ??}?
          ??File nextFile = new File(file,"ming\hehe");
          ??if(!nextFile.exists())
          ??{
          ???nextFile.mkdirs();?
          ??}
          ??System.out.println(nextFile.getParent());
          ??
          ??if(nextFile.isDirectory())
          ??{
          ???File newFile = new File(nextFile,"ming.txt");
          ???if(!newFile.exists())
          ???{
          ????newFile.createNewFile();
          ????System.out.println(newFile.getName());
          ????System.out.println(newFile.getAbsoluteFile());
          ????
          ???}
          ???for(int i=0;i <5;i++)
          ???{
          ????File listFile = new File(nextFile,"ming"+i+".txt");
          ????if(!listFile.exists())
          ????{
          ?????listFile.createNewFile();?
          ????}
          ???
          ???}
          ???String[] list = nextFile.list();
          ???for(int j = 0;j<list.length;j++)
          ???{
          ????System.out.println(list[j]);?
          ???}??
          ??}
          ??
          ??
          ?}?
          }

          運行結果:
          hehe\ming
          ming.txt
          D:\臨時資料\temp\hehe\ming\hehe\ming.txt
          ming.txt
          ming0.txt
          ming1.txt
          ming2.txt
          ming3.txt
          ming4.txt



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


          網站導航:
           
          主站蜘蛛池模板: 郴州市| 新兴县| 台中市| 神农架林区| 乌鲁木齐市| 遂昌县| 汾阳市| 始兴县| 福建省| 凌云县| 祁阳县| 宝应县| 溧水县| 紫云| 惠来县| 嘉祥县| 肃北| 沅陵县| 通道| 乡城县| 铁力市| 西贡区| 大丰市| 岳池县| 甘德县| 东至县| 涟源市| 怀柔区| 江阴市| 北流市| 班戈县| 镇宁| 皮山县| 南投市| 连山| 永靖县| 瑞丽市| 建水县| 金阳县| 临邑县| 上饶市|