Java中FileOutputStream類的使用
1.FileOutputStream類的作用
將數(shù)據(jù)寫入到文件中去
2.FileOutputStream類的使用步驟
(1)導(dǎo)入相關(guān)類的包
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;
(2)創(chuàng)建FileOutputStream類對(duì)象
此時(shí)會(huì)顯示異常,可點(diǎn)擊紅色波浪線,使用快捷鍵alt+回車,選擇第一個(gè)添加異常到方法簽名,或者自己添加異常到方法簽名。
即可創(chuàng)建FileOutputStream類對(duì)象
public class FileOutputStreamDemo { public static void main(String[] args) throws FileNotFoundException { FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt"); } }
注:在創(chuàng)建字節(jié)輸出流對(duì)象時(shí),參數(shù)可以是字符串表示的路徑或者是File對(duì)象若文件不存在則會(huì)創(chuàng)建一個(gè)新的文件,但是要保證其父級(jí)路徑存在若文件已經(jīng)存在,則會(huì)清空文件(即新寫入的數(shù)據(jù)會(huì)覆蓋之前的內(nèi)容)
(3)寫入數(shù)據(jù)
調(diào)用write方法寫入數(shù)據(jù)
(a).void write(int b) 一次寫入一個(gè)字節(jié)數(shù)據(jù)
public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { //IOException是FileNotFoundException的父類,因此只寫IOException即可 FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt"); //傳入的是int類型數(shù)據(jù),但實(shí)際寫到文件中的是整數(shù)在ASCII上對(duì)應(yīng)的字符 fos.write(97); //相同的,拋出異常 } }
(b).void write(byte[] b) 一次寫入一個(gè)字節(jié)數(shù)組數(shù)據(jù)
public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt"); byte[] bytes1 = {97,98,99,100,101}; fos.write(bytes1); //一次寫入一個(gè)字節(jié)數(shù)組數(shù)據(jù) } }
(c).void write(byte[] b,int off,int len) 一次寫入一個(gè)字節(jié)數(shù)組的部分?jǐn)?shù)據(jù)
public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt"); byte[] bytes1 = {97,98,99,100,101}; fos.write(bytes1,2,4); //off:起始字節(jié)索引,len:寫入的字節(jié)個(gè)數(shù) } }
換行寫入數(shù)據(jù)
想要實(shí)現(xiàn)換行寫入數(shù)據(jù),只需寫入換行符即可
public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt"); //創(chuàng)建一個(gè)字符串,內(nèi)容為換行符 fos.write(97); String str1 = "\r\n";//也可以只寫\r或者\(yùn)n但最好寫完整 //調(diào)用getBytes()方法,將字符串中內(nèi)容轉(zhuǎn)換為字節(jié)數(shù)組 byte[] bytes1 = str1.getBytes(); fos.write(bytes1); //同樣的,可以用字符串的方式創(chuàng)建較長(zhǎng)的數(shù)據(jù),再調(diào)用getBytes()方法,轉(zhuǎn)換為字節(jié)數(shù)組 String str2 = "asdfghjklqwert"; byte[] bytes2 = str2.getBytes(); fos.write(bytes2); } }
續(xù)寫
想要實(shí)現(xiàn)續(xù)寫(在文件原有數(shù)據(jù)后面接著寫入新的數(shù)據(jù)),只需要在創(chuàng)建文件輸出流對(duì)象時(shí)傳入第二個(gè)參數(shù)true
即可進(jìn)行續(xù)寫
(4)關(guān)流
每次使用完流之后都要關(guān)流,即斷開程序與文件之間的鏈接
public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt"); byte[] bytes1 = {97,98,99,100,101}; fos.write(bytes1,2,4); //關(guān)流 fos.close(); } }
下面為續(xù)寫的完整代碼,其余代碼基本上只需添加關(guān)流即可。
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileOutputStreamDemo { public static void main(String[] args) throws IOException { //創(chuàng)建輸出流對(duì)象 FileOutputStream fos = new FileOutputStream("D:\\新建文件夾\\a.txt",true); //寫入續(xù)寫數(shù)據(jù) String str = "asdfghjklqwert"; byte[] bytes = str.getBytes(); fos.write(bytes); //關(guān)流 fos.close(); } }
到此這篇關(guān)于Java中FileOutputStream類的使用的文章就介紹到這了,更多相關(guān)Java FileOutputStream類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
StreamAPI多次消費(fèi)一個(gè)stream代碼實(shí)例
這篇文章主要介紹了StreamAPI多次消費(fèi)一個(gè)stream代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Java幾個(gè)實(shí)例帶你進(jìn)階升華下篇
與其明天開始,不如現(xiàn)在行動(dòng),本文為你帶來幾個(gè)Java書寫的實(shí)際案例,對(duì)鞏固編程的基礎(chǔ)能力很有幫助,快來一起往下看看吧2022-03-03SpringBoot 使用@WebMvcTest測(cè)試MVC Web Controller
這篇文章主要介紹了SpringBoot 使用@WebMvcTest測(cè)試MVC Web Controller,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java實(shí)現(xiàn)samza轉(zhuǎn)換成flink
將Apache Samza作業(yè)遷移到Apache Flink作業(yè)是一個(gè)復(fù)雜的任務(wù),因?yàn)檫@兩個(gè)流處理框架有不同的API和架構(gòu),本文我們就來看看如何使用Java實(shí)現(xiàn)samza轉(zhuǎn)換成flink吧2024-11-11Spring?AOP通知類型與實(shí)戰(zhàn)示例講解
Spring?AOP提供了五種通知類型:@Before、@After、@AfterReturning、@AfterThrowing和@Around,每種通知類型都有其特定的使用場(chǎng)景和實(shí)現(xiàn)方式,通過合理使用這些通知類型,可以實(shí)現(xiàn)各種橫切關(guān)注點(diǎn)的模塊化和解耦,感興趣的朋友跟隨小編一起看看吧2024-11-11Java中String、StringBuffer和StringBuilder的區(qū)別與使用場(chǎng)景
在Java編程中,String、StringBuffer和StringBuilder是用于處理字符串的常見類,它們?cè)诳勺冃?、線程安全性和性能方面有所不同,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05JavaMail實(shí)現(xiàn)發(fā)送郵件功能
這篇文章主要為大家詳細(xì)介紹了JavaMail實(shí)現(xiàn)發(fā)送郵件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08springboot單元測(cè)試兩種方法實(shí)例詳解
這篇文章主要介紹了springboot單元測(cè)試兩種方法實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12