Java文件(io)編程_文件字節(jié)流的使用方法
案例1:
演示FileInputStream類(lèi)的使用(用FileInputStream的對(duì)象把文件讀入到內(nèi)存)
首先要在E盤(pán)新建一個(gè)文本文件,命名為test.txt,輸入若干字符
public class Demo_2 {
public static void main(String[] args) {
File f=new File("e:\\test.txt"); //得到一個(gè)文件對(duì)象f,指向e:\\test.txt
FileInputStream fis=null;
try {
fis=new FileInputStream(f); //因?yàn)镕ile沒(méi)有讀寫(xiě)的能力,所以需要使用FileInputStream
byte []bytes=new byte[1024]; //定義一個(gè)字節(jié)數(shù)組,相當(dāng)于緩存
int n=0; //得到實(shí)際讀取到的字節(jié)數(shù)
while((n=fis.read(bytes))!=-1){ //循環(huán)讀取
String s=new String(bytes,0,n); //把字節(jié)轉(zhuǎn)成String
System.out.println(s);
}
} catch (Exception e) {
e.printStackTrace();
}finally{ //關(guān)閉文件流必須放在這里
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
運(yùn)行程序,控制臺(tái)輸出test.txt中輸入的字符。
案例2:
演示FileOutputStream的使用(把輸入的字符串保存到文件中)
public class Demo_3 {
public static void main(String[] args) {
File f=new File("e:\\ss.txt");
FileOutputStream fos=null; //字節(jié)輸出流
try {
fos=new FileOutputStream(f);
String s="你好,瘋子!\r\n"; //\r\n為了實(shí)現(xiàn)換行保存
String s2="24個(gè)比利";
fos.write(s.getBytes());
fos.write(s2.getBytes());
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
打開(kāi)E盤(pán)名為ss.txt的文本文檔,存在輸入的字符。
案例3:圖片拷貝
首先在E盤(pán)準(zhǔn)備一張圖片,命名為a.jpg
public class Demo_4 {
public static void main(String[] args) {
//思路 先把圖片讀入到內(nèi)存,再寫(xiě)入到某個(gè)文件
//因?yàn)閳D片是二進(jìn)制文件,只能用字節(jié)流完成
FileInputStream fis=null; //輸入流
FileOutputStream fos=null; //輸出流
try {
fis=new FileInputStream("e:\\a.jpg");
fos=new FileOutputStream("d:\\a.jpg");
byte []bytes=new byte[1024];
int n=0; //記錄實(shí)際讀取到的字節(jié)數(shù)
while((n=fis.read(bytes))!=-1){ //read函數(shù)返回讀入緩沖區(qū)的字節(jié)總數(shù)
fos.write(bytes); //輸出到指定文件
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fis.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
打開(kāi)D盤(pán),點(diǎn)擊a.jpg,圖片正常顯示即運(yùn)行成功。
以上這篇Java文件(io)編程_文件字節(jié)流的使用方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
聊聊Java BigInteger里面的mod和remainder的區(qū)別
這篇文章主要介紹了聊聊Java BigInteger里面的mod和remainder的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Java Web學(xué)習(xí)之MySQL在項(xiàng)目中的使用方法
mysql數(shù)據(jù)庫(kù)是我們?cè)谌粘i_(kāi)發(fā)中經(jīng)常會(huì)用到的,下面這篇文章主要給大家介紹了關(guān)于Java Web學(xué)習(xí)之MySQL在項(xiàng)目中的使用方法,需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
Java的可變參數(shù)與Collections類(lèi)的功能示例解析
這篇文章主要為大家介紹了Java的可變參數(shù)與Collections類(lèi)的功能示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
淺析JavaWeb項(xiàng)目架構(gòu)之Redis分布式日志隊(duì)列
架構(gòu)、分布式、日志隊(duì)列,標(biāo)題自己都看著唬人,其實(shí)就是一個(gè)日志收集的功能,只不過(guò)中間加了一個(gè)Redis做消息隊(duì)列罷了。下面通過(guò)本文給大家分享JavaWeb項(xiàng)目架構(gòu)之Redis分布式日志隊(duì)列,感興趣的朋友一起看看吧2018-01-01
SpringSecurity構(gòu)建基于JWT的登錄認(rèn)證實(shí)現(xiàn)
這篇文章主要介紹了SpringSecurity構(gòu)建基于JWT的登錄認(rèn)證實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Java HelloWorld原理分析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
我們初學(xué)java的第一個(gè)程序是"hello world"。下面通過(guò)實(shí)例代碼給大家講解Java HelloWorld原理分析,感興趣的朋友一起學(xué)習(xí)吧2017-05-05
如何使用Spring?integration在Springboot中集成Mqtt詳解
MQTT是多個(gè)客戶(hù)端通過(guò)一個(gè)中央服務(wù)器傳遞信息的多對(duì)多協(xié)議,能高效地將信息分發(fā)給一個(gè)或多個(gè)訂閱者,下面這篇文章主要給大家介紹了關(guān)于如何使用Spring?integration在Springboot中集成Mqtt的相關(guān)資料,需要的朋友可以參考下2023-02-02

