java基礎(九) IO流

2021-09-06 02:01:45 字數 2813 閱讀 3394

1.io流的意義:處理裝置之間的資料傳輸

硬碟==>記憶體:讀(input)

記憶體==>硬碟:寫(output)

2.file類常用方法

新建檔案:file file = new file("d:\\aaa\\","1.txt");

file file = new file("d:"+system.getproperty("file.separator")+"1.txt");   //下劃線可用property鍵值對替代

檔案長度:length();

檔名:getname();

檔案所在目錄:getparent();

檔案路徑:getpath();    getabsolutepath();

建立檔案:createnewfile();

建立目錄:mkdir();    mkdirs();(多級目錄用後者)

刪除檔案:delete();

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

判斷是否為空:isempty();

判斷是否檔案、目錄:isfile();    isdirectory();

獲取所有檔名,獲取所有檔案(包含隱藏檔案):list();    listfiles();

3. file類實用方法(過濾器,遍歷,將txt檔案放到乙個集合中)

(1).檔名過濾器(filenamefilter)、檔案過濾器(filefilter)

class iofilterbyname implements filenamefilterelse

}         

//寫檔案過濾器

public iofilterbyendname implements filename

}return list;

4.普通流(重點)

(1).流的基本分類

按流操作的資料:位元組流,字元流

按流的流向:輸入流(讀),輸出流(寫)

位元組流的抽象基類:inputstream,outputstream

字元流的抽象基類:reader,writer

(2).位元組流

^1.檔案位元組流:fileinputstream,fileoutputstream

^2.位元組流的讀取(2種方法,區別在於有無快取)

file dir = new file("d:\\aaa");

fileinputstream fis = new fileinputstream(dir);

方法一:

int len = 0;

while((len = fis.read())!=-1)

bufferedreader br = new bufferedreader(new inputstreamreader(system.in));

注:加快取的意義在於提高效率

注:fileoutputstream fos = new fileoutputstream("d:\\1.txt",true);   //此處true意思為續寫

5.其他流

(1).列印流:printstream,printwriter

printwriter pw = new printwriter(system.out,true);    //true表示自動重新整理

(2).物件序列化流(物件儲存到裝置上):objectoutputstream

實現物件序列化流必須實現介面:implements serializable(給類提供版本號)

若物件中有屬性不想被序列化:private transient int age;

物件反序列化:objectinputstream

fileoutputstream fos = new fileoutputstream("d:\\1.txt");

objectoutputstream oos = new objectoutputstream(fos);

oos.writeobject(new person("aaa",20));

oos.close();

fos.close();

(3).隨機流:randomaccessfile

seek(數字);通過操作指標完成隨機寫

"r":唯讀許可權     "rw":讀寫許可權都有

randomaccessfile raf = new randomaccessfile("d:\\1.txt","rw");

raf.seek(8);

raf.write("aa".getbytes());

raf.writeint(7);

raf.close();

(4).管道流:pipedinputstream,pipedoutputstream(管道流一般用於多執行緒,單執行緒會死鎖)

可用connect()連線管道輸入輸出流

pipedinputstream pis = new pipedinputstream();

pipedoutputstream pos = new pipedoutputstream();

pis.connect(pos);

new thread(new pipedinputthread(pis)).start();

new thread(new pipedoutputthread(pos)).start();

(5).資料流:datainputstream    dataoutputstream

(6).位元組陣列流:bytearrayinputstream    bytearrayoutputstream

(7).字元陣列流:chararrayreader    chararraywriter

(8).字串流:stringreader    stringwriter

java基礎之io流

1.四大抽象基類 位元組流 inputstream outputstream 字元流 writer reader 位元組輸出流寫檔案用其子類fileoutputstream類 構造 fileoutputstream file file 傳遞file物件包裝檔案 string name 傳遞字串型別檔...

java基礎之IO流

io流概念 輸入流 把能夠讀取乙個位元組序列的物件稱為輸入流。輸出流 把能夠寫乙個位元組序列的物件稱為輸出流。通俗理解 對於初學者,可能常常不清楚何時該用輸入流,何時該用輸出流。本人將這兩個流記為 讀入寫出 那麼我就清楚輸入流就有read 讀 方法,輸出流就有write 寫 方法。然後,再思考 讀入...

Java基礎之IO流

1.位元組流 1.輸入流 inputstream 1.子類 fileinputstream 2.輸出流 outputstream 2.子類 fileoutputstream 3.操作流程 1.硬碟 輸入流 記憶體 輸出流 硬碟 2.示例 fileinputstream fis new fileinp...