Java IO流詳解(二)

來源:互聯網
上載者:User

標籤:java-io   java-file   檔案操作file   io流   java-流   

1 檔案對象

public class CreateFile {    public static void main(String[] args) {        //建立要操作的檔案路徑和名稱        //其中,File.separator表示系統相關的分隔字元,Linux下為:/  Windows下為:\\        //path在此程式裡面代表父目錄,不包含子檔案        String path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";        //childPath在此程式裡面代表子目錄,包含子檔案        String childPath = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\demo.txt";        //用父目錄和子檔案分隔的方式構造File對象        //也可以寫成 new File("D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent","test.txt");        File f1 = new File(path,"test.txt");        //使用絕對路徑來構造File對象        //也可以寫成new File("D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\demo.txt");        File f2 = new File(childPath);        //建立父目錄的檔案對象        File parent = new File(path);        //使用已有父目錄對象和子檔案構建新的File對象        File f3 = new File(parent,"hello.txt");        System.out.println("f1的路徑=" + f1);        System.out.println("f2的路徑=" + f2);        System.out.println("f3的路徑=" + f3);    }}

結果圖

值得注意的是,代碼中只是建立了對象,並沒有組建檔案!!


運行代碼之後,該檔案夾下並沒有產生響應的檔案夾和檔案。

2 建立檔案和刪除檔案

public class CreateFileAndDelete {    public static void main(String[] args) {        String Path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";        File f = new File(Path);        try {            /*因為建立和刪除檔案涉及到底層操作,所以有可能會引發異常*/            //如果建立成功則會返回true            //如果已存在該檔案,則建立不成功,返回flase,別以為會覆蓋            System.out.println("建立檔案:" + f.createNewFile());            //刪除檔案,成功返回true,否則返回flase            System.out.println("刪除檔案:" + f.delete());            //此方法表示在虛擬機器退出時刪除檔案            //原因在於:程式運行時有可能發生異常造成直接退出            //清理殘餘很有必要~!            f.deleteOnExit();        } catch (IOException e) {            e.printStackTrace();        }      }}

結果

3 檔案的判斷和測試

public class FileTest {     public static void main(String[] args) {            String Path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";            File f = new File(Path);            //判斷檔案是否可執行            System.out.println("f是否可執行:" + f.canExecute());            //判斷檔案是否存在            System.out.println("f是否存在:" + f.exists());            //判斷檔案是否可讀            System.out.println("f是否可讀:" + f.canRead());            //判斷檔案是否可寫            System.out.println("f是否可寫:" + f.canWrite());            //判斷檔案是否為絕對路徑名            System.out.println("f是否絕對路徑:" + f.isAbsolute());            //判斷檔案是否為一個標準檔案            System.out.println("f是否為標準檔案:" + f.isFile());            //判斷檔案是否為一個目錄            System.out.println("f是否為目錄:" + f.isDirectory());            //判斷檔案是否隱藏            System.out.println("f是否隱藏:" + f.isHidden());          } }

在parent檔案夾不存在的情況下結果

在parent檔案夾存在的情況下結果

4 建立檔案夾

public class CreateFilePath {    public static void main(String[] args) {        String path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";        //path在此處作為父目錄存在        File f1 = new File(path,"/abc");        File f2 = new File(path,"/d/e/f/g");        //建立一個目錄        System.out.println(f1.mkdir());        //遞迴建立目錄        System.out.println(f2.mkdirs());    } }

運行代碼前結果圖

運行代碼後結果圖

控制台輸出為

5 擷取檔案資訊

public class GetFileInfo {     public static void main(String[] args) {            String path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";            File f = new File(path);            //返迴文件的絕對路徑            //此處傳回值為String            System.out.println("f的絕對路徑名:" + f.getAbsolutePath());            //返迴文件的絕對路徑            //此處傳回值為File            System.out.println("f的絕對路徑對象:" + f.getAbsoluteFile());            //返迴文件或目錄的名稱            System.out.println("f的名稱:" + f.getName());            //返迴文件的相對路徑            //建構函式中封裝的是什麼路徑,就返回什麼路徑            System.out.println("f的路徑:" + f.getPath());            //返回父目錄的路徑            //如果在建構函式中的路徑不是絕對路徑,那麼此處返回null            System.out.println("f的父目錄:" + f.getParent());        }}

結果圖

控制台輸出資訊:

6 列出檔案系統的根目錄

public class GetRootPath {    public static void main(String[] args) {        //listRoots()是一個靜態方法,返迴文件數組        File[] files = File.listRoots();        //foreach迴圈列印File對象        for (File x : files) {            System.out.println(x);        }    }}

結果

7 列出檔案下的所有檔案和目錄

public class GetFileChildfile {     public static void main(String[] args) {            String path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";            File f = new File(path);            //方式一:list()            //返回一個包含指定目錄下所有檔案名稱的字串數組            //如果不是一個目錄則返回null            String[] files = f.list();            for (String x : files) {                System.out.println(x);            }            //方式二:listFiles()            //返回File數組            /*            File[] files = f.listFiles();            for (File x : files) {                //如果需要包含路徑,則直接列印x即可                System.out.println(x.getName());            }            */          }}

結果圖:

8 遞迴列出目錄下所有檔案

public class GetAllChileFile {     public static void main(String[] args) {            String path = "D:\\Program Files (x86)\\ADT\\workspace\\JavaIO\\parent";            File f = new File(path);            //調用下面的遞迴方法            print(f);        }        //用遞迴的方式列印目錄列表        public static void print(File f) {            if(f.isDirectory()){                File[] files = f.listFiles();                for(File x : files) {                    print(x);                }            } else {                System.out.println(f);            }        }}

結果;

如果有什麼問題或者錯誤,請大家留言!謝謝~~!

源碼稍後給出下載

Java IO流詳解(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.