File

當須要把內存中的數據存儲到持久化設備上這個動做稱爲輸出(寫)Output操做。java

當把持久設備上的數據讀取到內存中的這個動做稱爲輸入(讀)Input操做。數組

所以咱們把這種輸入和輸出動做稱爲IO操做。測試

 

 

//相對路徑:相對本工程的路徑spa

       File file=new File("src");對象

      

       //獲取絕對路徑遞歸

       file.getAbsolutePath();接口

      

       //獲取文件夾名內存

       file.getName();字符串

       //獲取該文件的字符串路徑get

       file.getPath();

       //獲取這文件夾的長度

       file.length();

 

新建文件:

       //1.不能建立同名文件

       //2.不能建立文件夾

       File file=new File("D:\\text\\c.JaVa");

       file.createNewFile();//返回一個布爾值,判斷是否建立成功

      

 

建立文件夾:

       file.mkdir();

建立多級文件夾

       file.mkdirs();

   

 

//判斷該File指定的文件或文件夾是否存在

file.exists();

 

    //判斷該File指定的文件或文件夾是不是文件夾(目錄)

    file.isDirectory();

 

    //判斷該File指定的文件或文件夾是不是是文件

    file.isFile();

   

   

    //刪除文件或文件夾

    file.delete();

 

File.pathSeparator  路徑分隔符 

Windows系統 ;  Linux系統 :

 

 

listFiles()方法

list() 返回一個字符數串組,爲指定路徑中的文件名

listFiles() 返回一個全部路徑名的File[]

 

注意:在獲取指定目錄下的文件或者文件夾時必須知足下面兩個條件

1,指定的目錄必須是存在的,

2,指定的必須是目錄。不然容易引起返回數組爲null,出現NullPointerException

 

 

文件過濾器

listFiles(FileFilter  filter)重載方法:返回路徑名File[],而且符合括號中指定過濾的文件和目錄

FileFilter 接口

方法:accept(File pathname);測試指定路徑名是否包含在指定文件中,accept方法接受一個參數,這個參數就當前文件或文件夾對象

返回值  boolean

 

須要自定義類接受FileFilter接口

列: File file=new File("D:\\text");

       File[] files=file.listFiles(new MyFileFilter());

       for(File f:files){

           System.out.println(f);

       }

public class MyFileFilter implements FileFilter{

        public boolean accept(File pathname){

          

           return pathname.getName().toLowerCase().endsWith(".java");

        }

}

getName()獲取文件名,toLowerCase(),大寫轉爲小寫,endsWith(".java");判斷以什麼結尾(「.java」);

 

 

 

 

遞歸

遞歸,指在當前方法內調用本身的這種現象

 

注意:遞歸必定要有條件限定,保證遞歸可以中止下來,不然會發生棧內存溢出。

在遞歸中雖然有限定條件,可是遞歸次數不能太多。不然也會發生棧內存溢出。

遞歸打印指定文件下的全部子目錄:

 

File file=new File(「D:\\text」);

public static void geta(File file){

File[] files=file.listFiles(new My());

for(File f:files){

           if(f.isDirectory()){//判斷若是是文件夾就繼續調用

              geta(f);

           }

           if(f.isFile()){//判斷是文件 打印

              System.out.println(f);

           }

             

}

}

public class My implements FileFilter{

    public boolean My(File pathname){

       if(pathname.isDirectory()){

           return true;

       }

       return pathname.getName().toLowerCase().endsWith(".txt");

    }

}

相關文章
相關標籤/搜索