流操作的基本規律的總結

2021-06-07 04:39:41 字數 3065 閱讀 9110

流的使用我用3個步驟來確定具體使用哪個流

1、明確源和目的

源:輸入流     inputstream  reader

目的:輸出流   outputstream writer

2、操作的資料是否是純文字(在明確源和目的的情況下)

是:字元流 

不是:位元組流

3、當體系明確後,在明確要使用哪個具體物件。

通過裝置來進行區分:

源裝置:記憶體、硬碟、鍵盤

目的裝置:記憶體、硬碟、控制台

例子:將乙個文字檔案中資料儲存到另乙個檔案中。複製檔案。

源:因為是源,所以使用讀取流。  inputstream  reader

是不是操作文字檔案:是,這時就可以選擇reader

這樣體系就明確了。

接下來明確要使用該體系中的哪個物件。

明確裝置,硬碟上乙個檔案

reader體系中可以操作檔案的物件是 filereader

是否需要緩衝區(資料小的就可以不需要):是,加入reader體系中緩衝區bufferereader.

filereader r = new filereader("讀取資料路徑");

bufferereader b = new bufferereader(r);

目的:outputstream writer

是否是純文字。

是,writer.

裝置:硬碟乙個檔案。

writer體系中可以操作文字的物件是filewriter.

是否需要緩衝區(資料小的就可以不需要):是,加入writer體系中緩衝區bufferewriter.

filewriter r = new filewriter("存放資料路徑");

bufferewriter b = new bufferewriter(r);

用於操作位元組陣列的流物件

bytearrayinputstream:在構造的時候,需要接受資料來源,而且資料來源是乙個位元組陣列

bytearrayoutputstream:在構造的時候,不用定義資料目的,因為該物件已經內部封裝了可變長度的位元組陣列。、

這就是資料目的。

因為這個兩個流物件都操作的陣列,並沒有使用系統資源。

所以,不用進行close()關閉

在操作規律講解時:

源裝置:

鍵盤 system.in , 硬碟 filestream , 記憶體 arraystream

目的裝置:

鍵盤 system.out , 硬碟 filestream , 記憶體 arraystream

用流的讀寫思想運算元據用於操作位元組陣列的流物件

bytearrayinputstream:在構造的時候,需要接受資料來源,而且資料來源是乙個位元組陣列

bytearrayoutputstream:在構造的時候,不用定義資料目的,因為該物件已經內部封裝了可變長度的位元組陣列。、

這就是資料目的。

因為這個兩個流物件都操作的陣列,並沒有使用系統資源。

所以,不用進行close()關閉

在操作規律講解時:

源裝置:

鍵盤 system.in , 硬碟 filestream , 記憶體 arraystream

目的裝置:

鍵盤 system.out , 硬碟 filestream , 記憶體 arraystream

用流的讀寫思想運算元據。

file類常見的方法

1、建立

boolean createnewfile():在指定目下建立檔案,如果該檔案已存在就不建立(返回false),否則就建立(返回true)

跟輸出流建立檔案不一樣,輸出流物件就建立檔案,而且已有檔案檔案,會覆蓋。

舉乙個簡單的例子:

file file = new file("e:\\myuser\\filedemo.txt");

file.createnewfile();

2、刪除

boolean detele():刪除此抽象路徑名表示的檔案或目錄。

deteleonexit();在程式退出時刪除指定檔案

例如:file file = new file("e:\\myuser\\filedemo.txt");

file.delete();

file.deleteonexit();

3、判斷

boolean exists():判斷檔案是否存在。存在返回true,否則false

isfile();//判斷此抽象路徑名表示的檔案存在且 是乙個標準檔案時,返回 true;否則返回 false

isdirectory();//判斷此抽象路徑名表示的檔案存在且 是乙個目錄時,返回 true;否則返回 false 

ishidden();判斷是否是隱藏檔案

isabsolute();//判斷抽象路徑名是絕對路徑名,則返回 true;否則返回 false

例如:public static void renametos()

4、獲取資訊

getname():得到檔案的名稱,該名稱是路徑名名稱序列中的最後乙個名稱

getpath():

getparent():得到抽象路徑名指定父目錄的路徑名字串(也就是得到上一級目錄的名稱);

如果此路徑名沒有指定父目錄,則返回 null

length() :得到檔案的長度

lastmodified() :得到檔案最後一次修改的時間

getabsolutefile() ://得到檔案的相對路徑

例如:public static void getinforfile()

5、建立目錄:

mkdir():當已建立目錄時,返回 true;否則返回 false 。建立一級目錄

mkdirs():已建立目錄以及所有必需的父目錄時,返回 true;否則返回 false 。建立多級目錄

例如:file f1 = new file("e:\\myuser\\filedemo_filedemo11.txt");

file f2 = new file("e:\\myuser\\myuser\\myuser\\filedemo_filedemo_.txt");

f1.mkdir();

f2.mkdirs();

流操作的基本規律

流操作的基本規律 最痛苦的就是流物件有很多,不知道該用哪乙個。通過三個明確來完成。1,明確源和目的。源 輸入流。inputstream reader 目的 輸出流。outputstream writer。2,操作的資料是否是純文字。是 字元流。不是 位元組流。3,當體系明確後,在明確要使用哪個具體的...

流操作的基本規律

目的 是為了開發時可以明確具體使用哪個流物件更為合適 明確一 資料的源或目的 匯 源 對應的就是讀取,讀取對應就是兩個體系 inputstream reader 目的 對應的就是寫入 寫入對應的兩個體系 outputstream writer 明確二 操作的資料是否為純文字。源 是純文字檔案,rea...

IO流操作基本規律總結

1 明確源和目的 源 輸入流 inputstream reader 目的 輸出流 outstream writer 2.操作的資料是否是純文字 是 字元流 reader writer 否位元組流 inputstream outputstream 3 體系明確後,要確定使用哪個具體物件 根據裝置分 源...