java.io.File
類:文件和文件目錄路徑的抽象表示形式,與平臺無關。File
能新建、刪除、重命名文件和目錄,但 File
不能訪問文件內容自己。 若是須要訪問文件內容自己,則須要使用輸入/輸出流。File
對 象,可是Java程序中的一個File對象,可能沒有一個真實存在的文件或目錄。File
對象能夠做爲參數傳遞給流的構造器。如何建立File
類的實例
public File(String pathname):以pathname
爲路徑建立File
對象,能夠是絕對路徑或者相對路徑,若是 pathname
是相對路徑,則默認的當前路徑在系統屬性user.dir
中存儲。java
File file1 = new File("hello.txt");// 相對於當前module File file2 = new File("F:\\Java\\JavaSenior\\month12-day07\\he.txt");// 絕對路徑 System.out.println(file1);// hello.txt System.out.println(file2);// F:\Java\JavaSenior\month12-day07\he.txt
public File(String parent,String child):以parent
爲父路徑,child
爲子路徑建立File
對象。windows
File file3 = new File("F:\\Java\\JavaSenior","month12-day07"); System.out.println(file3);// F:\Java\JavaSenior\month12-day07
public File(File parent,String child):根據一個父File
對象和子文件路徑建立File
對象。數組
File file4 = new File(file3, "hi.txt"); System.out.println(file4); // F:\Java\JavaSenior\month12-day07\hi.txt
相對路徑:相較於某個路徑下,指明的路徑
絕對路徑:包含盤符在內的文件或文件路徑ui
路徑分隔符
windows和DOS系統:\\
unix和URL:/
Java程序支持跨平臺運行,所以路徑分隔符要慎用。
爲了解決這個隱患,File
類提供了一個常量: public static final String separator
。根據操做系統,動態的提供分隔符。操作系統
File file1 = new File("d:\\atguigu\\info.txt"); File file2 = new File("d:" + File.separator + "atguigu" + File.separator + "info.txt"); File file3 = new File("d:/atguigu");
public String getAbsolutePath():獲取絕對路徑 。
public String getPath() :獲取路徑 。
public String getName() :獲取名稱 。
public String getParent():獲取上層文件目錄路徑。若無,返回null
。
public long length() :獲取文件長度(即:字節數)。不能獲取目錄的長度。
public long lastModified() :獲取最後一次的修改時間,毫秒值 。unix
以下方法適用於文件目錄
public String[] list() :獲取指定目錄下的全部文件或者文件目錄的名稱數組 。
public File[] listFiles() :獲取指定目錄下的全部文件或者文件目錄的File
數組。code
public void Test2() { File file1 = new File("hello.txt"); File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt"); System.out.println(file1.getAbsolutePath()); System.out.println(file1.getName()); System.out.println(file1.getParent()); System.out.println(file1.length()); System.out.println(new Date(file1.lastModified())); System.out.println(); System.out.println(file2.getAbsolutePath()); System.out.println(file2.getName()); System.out.println(file2.getParent()); System.out.println(file2.length()); System.out.println(file2.lastModified()); }
public void test3() { File file = new File("F:\\Java\\JavaSenior\\month12-day07"); String[] list = file.list(); for (String s : list) { System.out.println(s); } File[] files = file.listFiles(); for (File s : files) { System.out.println(s); } }
public boolean renameTo(File dest):把文件重命名爲指定的文件路徑。
以 file1.renameTo(file2) 爲例:
要像保證返回true,須要file1在硬盤中是存在的,且file2不能在硬盤中存在。對象
public void test4() { File file1 = new File("hello.txt"); File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt"); boolean renameTo = file1.renameTo(file2); System.out.println(renameTo); }
public boolean isDirectory():判斷是不是文件目錄。
public boolean isFile() :判斷是不是文件。
public boolean exists() :判斷是否存在。
public boolean canRead() :判斷是否可讀。
public boolean canWrite() :判斷是否可寫。
public boolean isHidden() :判斷是否隱藏get
public void test5() { File file1 = new File("hello.txt"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); System.out.println(file1.exists()); System.out.println(file1.canRead()); System.out.println(file1.canWrite()); System.out.println(file1.isHidden()); System.out.println(); File file2 = new File("F:\\OfficeFile\\JAVA_IO"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); System.out.println(file1.exists()); System.out.println(file1.canRead()); System.out.println(file1.canWrite()); System.out.println(file1.isHidden()); }
public boolean createNewFile() :建立文件。若文件存在,則不建立,返回false
。
public boolean mkdir() :建立文件目錄。若是此文件目錄存在,就不建立了。 若是此文件目錄的上層目錄不存在,也不建立。
public boolean mkdirs() :建立文件目錄。若是上層文件目錄不存在,一併建立。
public boolean delete():刪除磁盤中的文件或者文件夾 刪除注意事項: Java中的刪除不走回收站。 要刪除一個文件目錄,請注意該文件目錄內不能包含文件或者文件目錄。it
文件的建立:
public void test6() { File file1 = new File("Hi.txt"); if (!file1.exists()) { try { boolean newFile = file1.createNewFile(); if (newFile) System.out.println("建立成功"); } catch (IOException e) { e.printStackTrace(); } }else { boolean delete = file1.delete(); if (delete) System.out.println("刪除成功"); } }
文件目錄的建立:
public void test7() { File file1 = new File("F:\\OfficeFile\\JAVA_IO\\IO01\\io03"); boolean mkdir = file1.mkdir(); if (mkdir) System.out.println("建立成功1"); File file2 = new File("F:\\OfficeFile\\JAVA_IO\\IO02\\io04"); boolean mkdirs = file2.mkdirs(); if (mkdirs) System.out.println("建立成功2"); }
FIle
類中涉及到關於文件或文件目錄的建立、刪除、重命名、修改時間、文件大小等方法,並未涉及到寫入或讀取文件內容的操做。若是須要讀取或寫入文件內容,必須使用IO
流來完成。