IO常用案例整理(File類 位元組流 字元流)

2021-09-30 00:21:29 字數 3626 閱讀 6254

檔案流概覽

這裡不再介紹的概念,直接上菜

位元組流和字元流的區別:

位元組流操作的基本單元是位元組,而字元流操作的基本單元是unicode碼元。

位元組流操作的是檔案本身,沒有使用到緩衝區(可以簡單理解為一段記憶體區域)。而字元流使用到了緩衝區,通過緩衝區操作檔案(這個後面可以寫個案列進行說明)

位元組流通常用於處理二進位制資料,實際上可以處理任意型別的資料。但是它不支援直接讀寫unicode碼元。字元流通常用於處理文字資料。

用位元組流好還是字元流好?

兩者相比較而言,位元組流更加的通用,硬碟上的檔案都是以位元組的形式進行儲存和傳輸,而字元只會在記憶體中才會形成,字元陣列、字串。在開發中,位元組流的應用更加廣泛。

需求案例

需求1:建立乙個新的檔案

/**

* 新建檔案

*/@test

void test1(

) catch (ioexception e)

}

需求2:刪除檔案

/**

* 刪除檔案

*/@test

void test2(

)else

}

需求3:建立乙個新的資料夾

/**

* 建立乙個資料夾

*/@test

void test3(

)else

}

需求4:刪除資料夾

/**

* 刪除乙個資料夾

*/@test

void test4(

)else

}

需求5:位元組流-----向檔案中寫入字串

/**

* 向檔案中寫入字串

*/@test

void test5(

) throws ioexception

else

}

需求6:位元組流-----讀取檔案內容使用位元組流讀取內容的時候,這裡記錄了兩種方式,最主要的區別就是方式一中,我們預先申請了乙個指定大小的記憶體空間,但是這個空間在實際使用的過程中,可能會存在偏大或者偏小的情況,所以提倡使用方式二。這樣就可以精確大小了。

/**

* 讀取檔案內容

*/@test

void test6(

) throws ioexception else

}

需求7:字元流-----向檔案寫入字串

/**

* 字元流---向檔案寫入字串

*/@test

void test7(

) throws ioexception

需求8:字元流-----讀取檔案內容

/**

* 字元流

* * 讀取檔案

*/@test

void test8(

) throws ioexception

文章開頭部分在介紹位元組流和字元流的時候,提到了兩者對於緩衝區的使用情況,這裡可以分別在使用位元組流和字元流向檔案寫入字串的時候,將.close關閉流的方法注釋掉,然後再區分別讀取兩種方式的寫入情況然後會發現:使用位元組流的方式是成功將內容寫入了,但是使用字元流的方式的時候,內容就沒有寫入成功,這就是因為位元組流直接操作了檔案本身,但是字元流是操作的緩衝區需求9:合併檔案內容

/**

* 合併檔案內容

* * 將myworld.txt和hello.txt中的內容合併到 merge.txt檔案中

*/@test

void test9(

) throws ioexception

//關閉流

inputstream1.close();

inputstream2.close();

fileoutputstream.close();

sequenceinputstream.close();

}

需求10:壓縮檔案

/**

* 壓縮檔案

需求11:解壓縮單個檔案

/**

* 解壓縮單個檔案

*/@test

void test11(

) throws ioexception

inputstream.close();

fileoutputstream.close();

}

需求12:壓縮多個檔案

/**

* 壓縮多個檔案

*/@test

void test12(

) throws ioexception

input.close();

}}zipoutputstream.close();

}}

需求13:解壓縮多個檔案

/**

* 解壓縮多個檔案

*/@test

void test13(

) throws exception if(

!outfile.exists(

)) inputstream = zipfile.getinputstream(entry)

; output = new fileoutputstream(outfile)

; int temp;

while

((temp = inputstream.read(

)) != -1)

inputstream.close();

output.close();

}}

需求14:複製檔案

/**

* 複製乙個檔案

*/@test

void test14(

) throws ioexception

inputstream.close();

fileoutputstream.close();

}

後面碰到其他新的常見需求後再對此文章進行補充。

I O流 File類常用API

file類常用方法 1 建立file物件 file file parent,string child 從父抽象路徑名和子路徑名字串建立新的 file例項。file string pathname 通過將給定的路徑名字串轉換為抽象路徑名來建立新的 file例項。file string parent,s...

File類中的常用方法 IO流中的位元組流

1.file類 檔案和目錄路徑名的抽象表示 2.絕對路徑 帶碟符的路徑.相對路徑 相對其他檔案或目錄的乙個路徑叫相對路徑.如果當前檔案或目錄相對其他碟符的的檔案或目錄來說,此時相對路徑 絕對路徑.如果當前檔案或目錄相對當前所有在的碟符的檔案或目錄來說,此時相對路徑 絕對路徑.根路徑 相當當前專案的路...

判斷file空 IO流(二) File類

file類的建構函式 通過將給定路徑名字串轉換為抽象路徑名來建立乙個新 file 例項。引數 string pathname 字串的路徑名稱 路徑可以是以檔案結尾,也可以是以資料夾結尾 路徑可以是相對路徑,也可以是絕對路徑 路徑可以是存在,也可以是不存在 建立file物件,只是把字串路徑封裝為fil...