Java IO(2)——File

File類

java.io.File類:文件和目錄路徑名的抽象表示形式,與平臺無關

File能新建、刪除、重命名文件和目錄,但File不能訪問文件內容本身。如果需要訪問文件內容本身,則需要使用輸入/輸出流。

File對象可以作爲參數傳遞給流的構造函數

常用方法

①訪問文件名:getName()、getPath()、getAbsoluteFile()、getAbsolutePath()、getParent()、renameTo(File newName)

②文件操作相關:createNewFile()、delete()

③文件檢測:exists()、canWrite()、canRead()、isFile()、isDirectory()

④目錄操作相關:mkDir()、mkDirs()、list()、listFiles()

⑤獲取常規文件信息:lastModified()、length()

舉例

import java.io.File;
import java.io.IOException;
import org.junit.Test;

/**
 * java.io.File類
 * 1.凡是與輸入、輸出相關的類、接口等都定義在java.io包下
 * 2.File是一個類,可以有構造器創建其對象。此對象對應着一個文件或文件目錄
 * 3.File類對象與平臺無關。
 * 4.File中的方法,僅涉及如何創建、刪除、重命名等。只要涉及文件內容的,File是無能爲力的,必須由IO流完成
 * 5.File類的對象常作爲io流的具體類的構造器的形參
 */
public class TestFile {

	
	/**
	 * 文件操作相關
	 * createNewFile()
	 * delete()
	 * 
	 * 目錄操作相關
	 * mkDir():創建一個文件目錄。只有在上層文件目錄存在的情況下,才能返回true
	 * mkDirs():創建一個文件目錄。若上層文件目錄不存在,一併創建
	 * list():
	 * listFiles():
	 * @throws IOException 
	 */
	@Test
	public void test3() throws IOException {
		File file1 = new File("e:\\io\\hello.txt");
		System.out.println(file1.delete());
		
		//新建文件
		if(!file1.exists()) {
			boolean b = file1.createNewFile();
			System.out.println(b);
		}
		
		//新建目錄
		File file2 = new File("e:\\io\\io2");
		if(!file2.exists()) {
			boolean b = file2.mkdir();
			System.out.println(b);
		}
		
		//將目錄下的文件名以string數組的形式返回
		File file3 = new File("E:\\Java_backup");
		String[] strs = file3.list();
		for(int i=0;i<strs.length;i++) {
			System.out.println(strs[i]);
		}
		
		//返回File類的引用,具有類的所有屬性和方法
		
		File[] files = file3.listFiles();
		for(int i=0;i<files.length;i++) {
			System.out.println(files[i].getName());
		}
	}
	
	/**
	 * 文件檢測
	 * exists()
	 * canWrite()
	 * canRead()
	 * isFile()
	 * isDirectory()
	 * 
	 * 獲取常規文件信息
	 * lastModified()
	 * length()
	 */
	@Test
	public void Test2() {
		File file1 = new File("e:\\io\\hello.txt");
		File file2 = new File("e:\\io\\io1");
		
		//操作文件
		System.out.println(file1.exists());
		System.out.println(file1.canWrite());
		System.out.println(file1.canRead());
		System.out.println(file1.isFile());
		System.out.println(file1.isDirectory());
		System.out.println(file1.lastModified());
		System.out.println(file1.length());
		
		System.out.println();
		
		//操作目錄
		System.out.println(file2.exists());
		System.out.println(file2.canWrite());
		System.out.println(file2.canRead());
		System.out.println(file2.isFile());
		System.out.println(file2.isDirectory());
		System.out.println(file2.lastModified());
		System.out.println(file2.length());
	}
	
	/**
	 * 路徑:
	 * 絕對路徑:包括盤符在內的完整的文件路徑
	 * 相對路徑:在當前文件目錄下的文件的路徑
	 * 
	 * getName()
	 * getPath()
	 * getAbsoluteFile()
	 * getAbsolutePath()
	 * getParent()
	 * renameTo(File newName)  將一個文件改成另一個文件
	 */
	@Test
	public void test1() {
		File file1 = new File("e:\\io\\hello.txt");
		File file2 = new File("hello1.txt");
		File file3 = new File("e:\\io\\io1");
		
		System.out.println(file1.getName());
		System.out.println(file1.getPath());
		System.out.println(file1.getAbsoluteFile());
		System.out.println(file1.getParent());
		System.out.println(file1.getAbsolutePath());
		
		System.out.println(file3.getName());
		System.out.println(file3.getPath());
		System.out.println(file3.getAbsoluteFile());
		System.out.println(file3.getParent());
		System.out.println(file3.getAbsolutePath());
		
		//renameTo(File newName):重命名
		//file1.renameTo(file2):將file1重命名爲file2
		//要求:file1文件一定存在,file2一定不存在
		boolean b = file1.renameTo(file2);
		System.out.println(b);
		
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章