Java中File類及其方法簡介

Java中經常會遇到讀取、操作文件的地方,這裏就會用到File類了,File類是Java中處理文件最重要的一個類,後面的數據流操作都是基於這個類的,File類直接繼承自Object類,具有很多構造方法,這是在API文檔中的描述:

 

而其中最常用的方法是File(String pathname),直接以字符串的形式尋找到文件的路徑,但是這裏會有一個問題,就是如果這個文件不存在呢?那麼就會產生異常,下面我們就利用程序在E盤目錄下建立一個文件夾test,並在test文件夾下面建立一個文件test.txt

import java.io.File;
import java.io.IOException;

public class TestFile {

	public static void main(String[] args) {
		File file1 = new File("e:\\test\\test.txt");
		/*
		 * 調用File類的exists()方法判斷file1是否存在 如果不存在則創建這個文件
		 * 如果存在,則需要判斷這個test.txt是標準文件還是一個文件夾
		 * 因爲文件夾也是可以這麼命名的,這裏調用File類的isFile()和isDirectory()方法
		 */
		if (!file1.exists()) {
			System.out.println("該文件本來不存在,現已創建,請去相應的文件位置查看");
			try {
				//首先需要創建文件的父目錄
				file1.getParentFile().mkdir();
				//然後創建該文件
				file1.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		} else {
			if (file1.isDirectory()) {
				System.out.println("該文件是文件夾。");
			} else if (file1.isFile()) {
				System.out.println("該文件是文件。");
			}
		}
	}

}

第一次的運行結果是這樣的:

該文件本來不存在,現已創建,請去相應的文件位置查看

第二次的運行結果是這樣的:

該文件是文件。

說明在計算機中沒有程序中的文件存在時,程序找不到當前路徑,所以就會調用創建文件的方法來新建一個空文件,接下來用記事本打開這個空文件,在裏面手動的輸入一行字:“我是一名程序員”

下面我們來讀取這些文字,讀取文字的方式有很多種,這裏涉及到JavaIO的操作,IO流是Java中讀取文件最常用的,其本質是一種在計算機中傳輸的數據,按照不同的分類標準可以分爲以下幾類:

(1)按照傳輸方向分爲:輸入流、輸出流,輸入和輸出是以程序爲參考單元的,流向程序的叫做輸入流,而從程序流向計算機文件的叫做輸出流,InputStreamReader類爲所有輸入流的父類,而OutputStreamWriter爲所有輸出流的父類;

(2)按照處理單位分爲:字節流、字符流,字節流專門處理二進制文件的一種流,比如普通的文本文件、壓縮包、照片等等,而字符流是Java爲了處理文字而產生的一種流,專門用來將難以處理的非英文字符轉化爲字符,比如漢字,一個漢字佔兩個字節,用byte數組處理起來比較麻煩,而利用字符則方便許多。字節流用Stream表示,而字符流則用ReaderWriter表示。

(3)按照功能分爲:節點流、處理流,節點流指的是建立在節點之間,可以直接進行傳輸數據的流,如FileInputStream;處理流以節點流爲基礎,爲了給節點流增加功能的流,如OutputStreamWriter,可以將字符流轉化爲字符流輸出。

關於流的應用將會在請參考下一章。下面我們接着來討論File類,File類還有很多其他的方法,比較常用的有:

getName() 獲得文件的文件名(不包括目錄)

getParent() 獲取父文件夾名稱

listFiles() 獲得當前文件夾下面的所有子文件,並存放在File[]

mkdirs() 對當前文件夾的字符串創建文件

下一篇我們來繼續討論文件輸入與輸出流



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