JAVA的I/O操作(一)__JAVA

來源:互聯網
上載者:User
    我一直奇怪於為什麼在我前面所學到的內容裡,沒有從鍵盤輸入的語句,而今天所學的給了我很好的解答,這些內容全部包括在java.io包下。這一篇裡所講到的東西包括,File類(如何建立和刪除檔案,對檔案寫入和從檔案讀出)。
    File類有兩個構造方法,File(父目錄,檔案名稱),關聯指定的目錄下指定名稱的檔案,File(檔案名稱/目錄名),關聯某個檔案名稱或者目錄,這裡的/表示的意思是“或者”。
    比較好的方法是先用一個File對象關聯一個目錄名,然後建立這個目錄,(mkdir()),再用構造方法構造一個檔案。以下的代碼是在“我的文件”裡建立一個名為“1.txt”的檔案。
  File dir=new File("C:"+File.separator+"Documents and Settings"+File.separator+"Yxy"+File.separator+"My Documents");  //此處注意逸出字元
  dir.mkdir();  //建立目錄
  File file1=new File(dir,"1.txt");
  file1.createNewFile();  //建立一個新檔案
        String[] str1=dir.list();  //下文說到的list()
    //不知道為什麼這裡的空格硬是只能這麼長,代碼是我從我自己的代碼裡拷過來的,汗      
    //一個先
    各位,其實這裡可以用逸出字元“//”來代替File.separator,但是這不是一個好的習慣。為了實現Java的一次編譯,四處啟動並執行性感特點,我們需要一個通用的檔案分隔字元,因為各種作業系統下存在差異,比如linux的檔案分隔字元是正斜杠"/"。而File的特性separator正是擷取當前作業系統下的檔案分隔字元。另,千萬不要將讓"/"單獨存在,在代碼中這是一個逸出字元的標識,它會將接下來的一個字元理解為逸出字元。
     除了這種方法可以建立新的檔案,還可以調用File類下的一個靜態函數
 File createTempFile(String prefix,String suffix,File directory),這是一個完整的版本,在指定的目錄下建立一個以prefix為首碼名,suffix為尾碼名的臨時檔案,通過deleteOnExit()來刪除。但是還有一個精簡的版本,
File createTempFile(String prefix,String suffix),沒有指定目錄,將在當前作業系統預設的臨時檔案夾裡建立以prefix為首碼名,suffix為尾碼名的臨時檔案。
     以上是如何建立檔案,接下來講的是如何查閱目錄下的檔案和通過檔案過濾器尋找檔案。
    看到前面的代碼裡寫到的list()方法了嗎,返回一個String類型的數組,擷取目前的目錄下的所有檔案名稱,包括目錄名(即檔案夾)。但是,這樣是不夠的,無法找到我們所需要的檔案,我們需要的是按我們的要求找到某個房間。Java.io包類提供類檔案過濾器FileNameFilter,它是一個介面,內有方法boolean accept(File dir, String name),這是一個需要重寫的方法,重寫了這個方法之後,list(FileNameFileter f)方法可以列出符合我們要求的方法。
    以下是我練習的代碼。
import java.io.*;
class FileNameFilterInstance implements FilenameFilter //檔案過濾器
{
 public boolean accept(File dir,String name)
 {
  return name.indexOf(".java")!=-1; //注意傳回型別,indexof()返回索引或者-1,而             //accept要求返回boolean
 }
}
class Test1
{
 public static void main(String[] args) throws Exception  //此處注意拋出異常
 {
  File dir=new File("C:"+File.separator+"Documents and Settings"+File.separator+"Yxy"+File.separator+"My Documents");  //此處注意逸出字元
  dir.mkdir();
  File file1=new File(dir,"1.txt");
  file1.createNewFile();
  File file2=File.createTempFile("hello",".java",dir); //在dir指定目錄下建立hello.java,首碼至少3字長
    String[] str1=dir.list();
  for(int i=1;i<str1.length;i++)
   System.out.println(str1[i]);
  System.out.println("--------------------------");
  String[] str2=dir.list(new FileNameFilterInstance());
  for(int i=0;i<str2.length;i++)
   System.out.println(str2[i]);
  file1.deleteOnExit();  //退出時刪除檔案
  file2.deleteOnExit();
  Thread.sleep(5000);
 }
}
/*在"我的文件"下建立1.txt和hello.java返回我的文件下的所有檔案和目錄名,並根據檔案過濾器檢查到hello.java,最後在退出時刪除建立的檔案,期間建立檔案用到了createNewFile和靜態方法createTempFile*/  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.