File物件的一些基本方法和一些練習
阿新 • • 發佈:2019-02-01
<pre name="code" class="java"><strong><span style="font-size:32px;">1、常見方法</span></strong>
<span style="font-size:18px;">package IO_File; import java.io.File; import java.io.IOException; <span style="color:#33ff33;">/** * File物件的常見操作 1、建立 * * 2、刪除 * * 3、判斷 * * 4、獲取資訊 * */</span> public class FileDemo02 { <span style="color:#33ff33;">// 建立,刪除</span> public static void demo01() throws IOException { File f1 = new File("f.txt"); f1.createNewFile();<span style="color:#33ff33;">// 在定位置建立檔案,如果存在返回false,不建立,否則返回true</span> File f2 = new File("ab"); f2.mkdir();<span style="color:#33ff33;">// 建立一個資料夾</span> File f3 = new File("b:\\abc\\hh"); f3.mkdirs();<span style="color:#33ff33;">// 建立多級目錄的資料夾</span> f2.delete();<span style="color:#33ff33;">// 刪除檔案,刪除失敗返回false</span> f3.deleteOnExit();<span style="color:#33ff33;">// 在檔案提出是刪除檔案。 </span> } <span style="color:#33ff33;">// 判斷</span> public static void demo02() throws IOException { File f1 = new File("file.txt"); f1.exists();<span style="color:#33ff33;">// 判斷檔案是否存在,不存在返回false</span> f1.canRead();<span style="color:#33ff33;">// 檔案是否可讀</span> f1.canWrite();<span style="color:#33ff33;">// 檔案是否可寫</span> f1.canExecute();<span style="color:#33ff33;">// 檔案是否可執行</span> f1.isFile();<span style="color:#33cc00;">// 是不是檔案</span> f1.isDirectory();<span style="color:#33ff33;">// 是不是檔案目錄</span> f1.isAbsolute();<span style="color:#66ff99;">// 檔案是不是絕對路徑</span> f1.isHidden();<span style="color:#99ff99;">// 是不是隱藏檔案</span> } <span style="color:#99ff99;">// 獲取資訊</span> public static void demo03() throws IOException { File f1 = new File("file.txt"); f1.getName();<span style="color:#99ff99;">// 獲取檔名稱</span> f1.getPath();<span style="background-color: rgb(153, 255, 153);">// 返回路徑</span> f1.getParent();<span style="background-color: rgb(153, 255, 153);">// 檔案必須指定路徑,如果為相對路徑,返回為空。</span> f1.getAbsoluteFile();<span style="color:#99ff99;">// 獲取絕對路徑.並封裝為File物件</span> f1.getAbsolutePath();<span style="color:#99ff99;">// 獲取絕對路徑.返回字串</span> f1.length();<span style="background-color: rgb(153, 255, 153);">// 獲取檔案大小</span> f1.lastModified();<span style="background-color: rgb(153, 255, 153);">// 獲取最後修改時間</span> System.out.println(f1.getPath()); } public static void demo04() throws IOException { File[] f = File.listRoots();<span style="background-color: rgb(153, 255, 153);">// 獲取可用碟符</span> for (File file : f) { System.out.println(file); } System.out.println("-----------------------------------------------------------"); File file = new File("g:\\c"); String[] s = file.list();<span style="background-color: rgb(102, 255, 153);">// 獲取目錄下所有檔案和資料夾名稱,包括隱藏檔案 // 呼叫list方法的file物件必須封裝一個目錄,該目錄必須存在</span> for (String string : s) { System.out.println(string); } } public static void main(String[] args) throws IOException { // demo01(); // demo03(); demo04(); } } </span>
<span style="font-size:32px; font-family: Arial, Helvetica, sans-serif;">練習1</span>
package IO_File; import java.io.File; <span style="color:#33ff33;">/** * 檔案刪除操作 原理,從裡往外刪,需要用到遞迴原理 */</span> public class FileDemo03 { public static void main(String[] args) { File f=new File("G:\\JAVAEE_01"); remove(f); } public static void remove(File file) { File[] f = file.listFiles();<span style="color:#33ff33;">// 獲取所有的資料夾</span> for (int i = 0; i < f.length; i++) { if (f[i].isDirectory()) {<span style="color:#33ff33;">//如果還是資料夾</span> remove(f[i]);<span style="color:#33ff33;">//遞迴</span> } else { System.out.println(f[i].toString()+"------------------------------"+f[i].delete()); } } System.out.println(file.toString()+"------------------------------"+file.delete())<span style="color:#33ff33;">;//刪除資料夾</span> } }
<pre name="code" class="java"><span style="font-size:32px; font-family: Arial, Helvetica, sans-serif;">練習2</span>
package IO_File; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.List; <span style="color:#33ff33;">/** * 練習:對指定目錄下的java檔案的絕對路徑轉存到一個檔案中,方便查詢 思路: 1、對指定的目錄進行遞迴 2、獲取所有指定java檔案的路徑 * 3、將路徑儲存到一個集合當中 3、將集合資料寫到一個檔案中去 * */ </span> public class FileDemo04 { public static void main(String[] args) throws IOException { File file = new File("E:\\Myeclipc Wo\\java基礎學習_");<span style="color:#33ff33;">//指定檔案目錄</span> List<File> list = new ArrayList<File>();<span style="color:#33ff33;">//集合</span> demo01(file, list); System.err.println(list.size() + "-----"); File f = new File(file, "aaaa.txt"); demo02(list, f.toString()); } public static void demo01(File file, List<File> list) { File[] f = file.listFiles();<span style="color:#33ff33;">// 獲取所有資料夾</span> for (File file2 : f) { if (file2.isDirectory()) {<span style="color:#33ff33;">// 判斷是否是資料夾</span> demo01(file2, list);<span style="color:#33ff33;">// 遞迴呼叫</span> } else { if (file2.getName().endsWith(".java")) {<span style="color:#33ff33;">// 判斷後綴名</span> list.add(file2.getAbsoluteFile());<span style="color:#33ff33;">// 獲取絕對路徑,將路徑新增到集合</span> } } } } public static void demo02(List<File> list, String name) throws IOException { BufferedWriter bWriter = new BufferedWriter(new FileWriter(name)); for (File file : list) { String s = file.getAbsolutePath();<span style="color:#33ff33;">// 獲取絕對路徑</span> bWriter.write(s); bWriter.newLine();<span style="color:#33ff33;">// 換行</span> bWriter.flush(); } bWriter.close(); } }