流的使用我用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 體系明確後,要確定使用哪個具體物件 根據裝置分 源...