1. 程式人生 > >File物件的一些基本方法和一些練習

File物件的一些基本方法和一些練習

<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();
	}

}