天天看點

黑馬程式員——Java之IO流(1)

------Java教育訓練、Android教育訓練、iOS教育訓練、Net教育訓練、期待與您交流! -------

一、檔案

       IO操作經常處理的裝置之一是檔案。而Java語言提供了File類和RandomAccessFile類來對檔案進行處理。

(1)File類

        File類是IO包中唯一代表磁盤檔案本身的對象。File類定義了一些與平台無關的方法來操作檔案,可以通過調用File類中的方法,實作建立、删除、重命名檔案等。File類的對象主要用來擷取檔案本身的一些資訊,如檔案所在的目錄、檔案的長度、檔案讀寫權限等。資料流可以将資料寫入到檔案中,而檔案也是資料流常用的資料媒體。

       可以使用File類建立一個檔案對象,通常使用以下3種構造方法來建立檔案對象。

       ①File(String  pathname)

          該構造方法通過将給定路徑名字元串轉換為抽象路徑名來建立一個新File執行個體。

          pathname:是指路徑名稱(包含檔案名)。

       ②File(String parent ,String child)

          該構造方法根據定義的父路徑和子路徑字元串(包含檔案名)建立一個新的File對象執行個體。

          parent:父路徑字元串

          child:子路徑字元串

       ③File(File f ,String child)

          該構造方法根據parent抽象路徑名和child路徑名字字元串建立一個新的File對象執行個體。

          f:父路徑對象

         child:子路徑字元串

        File類中定義了一些方法,允許對檔案和目錄進行建立、修改與删除操作,其有關操作方法如下圖:

黑馬程式員——Java之IO流(1)

執行個體:

import java.io.File;
import java.io.IOException;
public class FileTest {

	public static void main(String[] args)  {
		//建立FileTest類檔案對象
		File file = new File("C:/Users/Administrator/Desktop/集合","test.txt");
		//如果檔案存在,将檔案删除并輸出提示資訊
		if (file.exists()) {
			file.delete();
			System.out.println("檔案已删除");
		} else {
			//使用try-catch語句捕捉可能出現的異常
              try {
            	//建立檔案并輸出提示資訊
				file.createNewFile();
				System.out.println("檔案已建立");
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
           

控制台輸出内容:

檔案已建立

     File類中擷取檔案本身資訊包括擷取檔案的名字、檔案的長度、檔案的路徑、判斷檔案是否可讀或者可寫、是否存在等。而擷取檔案本身資訊的方法以及方法描述如下表:

黑馬程式員——Java之IO流(1)

示例:

import java.io.File;

public class MyFileText {

	public static void main(String[] args) {

    File f = new File("C:/Users/Administrator/Desktop/test.txt");
    System.out.println("該檔案的名字:"+f.getName());
    System.out.println("該檔案的絕對路徑為:"+f.getAbsolutePath());
    System.out.println("該檔案的父目錄為:"+f.getParent());
    System.out.println("該檔案的路徑:"+f.getPath());
    System.out.println("該檔案長度:"+f.length());
    
	}
}
           

運作結果:

該檔案的名字:test.txt
該檔案的絕對路徑為:C:\Users\Administrator\Desktop\test.txt
該檔案的父目錄為:C:\Users\Administrator\Desktop
該檔案的路徑:C:\Users\Administrator\Desktop\test.txt
該檔案長度:0
           

(2)RandomAccessFile類

       除了File類以外,Java提供了用來專門處理檔案的類,稱之為随機通路檔案RandomAccessFile類。該類提供了更加完善的、對檔案輸入/輸出操作的功能。RandomAccessFile類可以在任意位置進行讀/寫操作,處理檔案更加靈活。

       RandomAccessFile類的構造方法:

       ①RandomAccessFile(File file,String mode);

          建立随機存取檔案流,檔案名由File參數指定;

       ②RandomAccessFile(String name, String mode);

          建立随機存取檔案流,檔案具有指定名稱

       mode的值及含義如下:

黑馬程式員——Java之IO流(1)

       RandomAccessFile類中的一些主要方法及功能描述:

黑馬程式員——Java之IO流(1)

示例:

import java.io.IOException;
import java.io.RandomAccessFile;
public class MyRandomAccessFile {

	public static void main(String[] args) throws IOException {
		File file = new File("C:/Users/Administrator/Desktop/test.txt");
        //如果檔案已存在,則删除後重新建立一個空檔案
		if (file.exists()) {
			file.delete();
			file.createNewFile();
		}	
		//以讀/寫模式建立RandomAccessFile對象
		RandomAccessFile rafile = new RandomAccessFile(file, "rw");
		//往rafile對象寫入字元内容
		rafile.writeBytes("One dream.");
		System.out.println(rafile.getFilePointer());
		//周遊rafile對象内容
		for (int i = 0; i < rafile.length(); i ++) {
		//設定檔案指針位置
			rafile.seek(i);
			//将位元組強制轉換成字元
			System.out.print((char)rafile.readByte());
		}
	}
}
           

運作結果:

10
One dream.