1. 程式人生 > >java中IO常見的IO流和file類理論總結

java中IO常見的IO流和file類理論總結

當前 unicode編碼 表示 相同 can HA 固定 tst clip

總結的很粗糙,以後時間富裕了好好修改一下。

1:Java語言定義了許多類專門負責各種方式的輸入或者輸出,這些類都被放在java.io包中。其中,所有輸入流類都是抽象類InputStream(字節輸入流),或者抽象類Reader(字符輸入流)的子類;而所有輸出流都是抽象類OutputStream(字節輸出流)或者Writer(字符輸出流)的子類。

【首先需要明白的是:流是幹什麽的???(為了永久性的保存數據)

根據數據流向的不同分為輸入流和輸出流;

根據處理數據類型的不同分為字符流和字節流;

【然後需要明白的是輸入模式和輸出模式是誰流向誰:

InputStream(字節輸入流)和Reader(字符輸入流)通俗的理解都是讀(read)的。

OutputStream(字節輸出流)和Writer(字符輸出流)通俗的理解都是寫(writer)的。

最後下面搞清楚各種流的類型的該怎麽用,誰包含誰,理清思路。

2:InputStream類是字節輸入流的抽象類,是所有字節輸入流的父類,InputStream類具有層次結構如下圖所示;

技術分享圖片

3:java中的字符是Unicode編碼的,是雙字節的,java中各種語言的文字都以Unicode的形式編碼,Unicode編碼是基於16位的char,所以讀取文件數據是通過字符流會更高效,方便。而一些二進制數據的讀寫,比如圖片、聲音等必須通過字節流來完成。InputStream是用來處理字節的,在處理字符文本時很不方便。Java為字符文本的輸入提供了專門的一套類Reader。Reader類是字符輸入流的抽象類,所有字符輸入流的實現都是它的子類。

技術分享圖片

4:輸出流OutputStream類是字節輸入流的抽象類,此抽象類表示輸出字節流的所有類的超類。

技術分享圖片

5:Writer類是字符輸出流的抽象類,所有字符輸出類的實現都是它的子類。

技術分享圖片

6:File類是IO包中唯一代表磁盤文件本身的對象。通過File來創建,刪除,重命名文件。File類對象的主要作用就是用來獲取文本本身的一些信息。如文本的所在的目錄,文件的長度,讀寫權限等等。(有的需要記憶,比如isFile(),isDirectory(),exits();有的了解即可。使用的時候查看API)

詳細如下: File類(File類的概述和構造方法) A:File類的概述   File更應該叫做一個路徑   文件路徑或者文件夾路徑   路徑分為絕對路徑和相對路徑     絕對路徑是一個固定的路徑,從盤符開始     相對路徑相對於某個位置,在eclipse下是指當前項目下,在dos下   查看API指的是當前路徑   文件和目錄路徑名的抽象表示形式 B:構造方法   File(String pathname):根據一個路徑得到File對象   File(String parent, String child):根據一個目錄和一個子文件/目錄得到File對象   File(File parent, String child):根據一個父File對象和一個子文件/目錄得到File對象 File類(File類的創建功能)   A:創建功能     public boolean createNewFile():創建文件 如果存在這樣的文件,就不創建了     public boolean mkdir():創建文件夾 如果存在這樣的文件夾,就不創建了     public boolean mkdirs():創建文件夾,如果父文件夾不存在,會幫你創建出來 (使用createNewFile()文件創建的時候不加.txt或者其他後綴也是文件,不是文件夾;使用mkdir()創建文件夾的時候,如果起的名字是比如aaa.txt也是文件夾不是文件;) 註意事項: 如果你創建文件或者文件夾忘了寫盤符路徑,那麽,默認在項目路徑下。 File類(File類的重命名和刪除功能)   A:重命名和刪除功能     public boolean renameTo(File dest):把文件重命名為指定的文件路徑     public boolean delete():刪除文件或者文件夾   B:重命名註意事項     如果路徑名相同,就是改名。     如果路徑名不同,就是改名並剪切。   C:刪除註意事項:     Java中的刪除不走回收站。     要刪除一個文件夾,請註意該文件夾內不能包含文件或者文件夾 File類(File類的判斷功能)   A:判斷功能     public boolean isDirectory():判斷是否是目錄     public boolean isFile():判斷是否是文件     public boolean exists():判斷是否存在     public boolean canRead():判斷是否可讀     public boolean canWrite():判斷是否可寫     public boolean isHidden():判斷是否隱藏

File類(File類的獲取功能)   A:獲取功能     public String getAbsolutePath():獲取絕對路徑     public String getPath():獲取路徑     public String getName():獲取名稱     public long length():獲取長度。字節數     public long lastModified():獲取最後一次的修改時間,毫秒值     public String[] list():獲取指定目錄下的所有文件或者文件夾的名稱數組     public File[] listFiles():獲取指定目錄下的所有文件或者文件夾的File數組 File類(文件名稱過濾器的概述及使用)   A:文件名稱過濾器的概述     public String[] list(FilenameFilter filter)     public File[] listFiles(FileFilter filter)

java中IO常見的IO流和file類理論總結