日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

《Java从入门到放弃》JavaSE入门篇:文件操作

發(fā)布時間:2023/12/20 java 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Java从入门到放弃》JavaSE入门篇:文件操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java中的文件操作還有點小復(fù)雜···

不過沒關(guān)系,我會把它講得很簡單,嘿嘿嘿!!!

在講Java中的文件操作前,先了解一個概念——“流”,比如我們把一個杯子的水倒到另一個同樣大小的杯子,就是以流的方式處理的(如果你把水凍成冰了再整個放進(jìn)去就當(dāng)我沒說吧 - -)。

其實我的理解很簡單,“流”就是一串?dāng)?shù)據(jù),至于這一串?dāng)?shù)據(jù)中每個數(shù)據(jù)單元有多大,Java中提供了兩種處理方法:字節(jié)流和字符流

無論是字節(jié)流還是字符流,根據(jù)處理方式又可以分為輸入流和輸出流。這一篇,我們就來簡單學(xué)學(xué)字節(jié)流和字符流的輸入和輸出。


一、字節(jié)流

????字節(jié)都知道吧?

????什么?不知道!!!好吧,不知道就不知道吧,那就簡單說說,計算機(jī)保存數(shù)據(jù)的最小單位是bit(位),這是一個二進(jìn)制單位,它的值只有0和1。

????一個字節(jié)就是一個Byte(注意這是大B,那個是小b),一個字節(jié)占8bit的大小。像現(xiàn)在的操作系統(tǒng)有什么32位啊64位啊,主要就是處理數(shù)據(jù)的時候有區(qū)別,32位的每次處理的最小單位是4個字節(jié),而64的是8個字節(jié)。具體還有很多區(qū)別之處,這兒我們就沒必要細(xì)說了。如果感興趣的話,那就百度走起!!!

????其實文件操作很簡單,跟趙本山小品中把大象放進(jìn)冰箱的步驟是一樣一樣滴。

????第一步:打開冰箱門

????第二步:把大象放進(jìn)去(或者拿出來)

????第三步:關(guān)閉冰箱

????就這三步,是不是超級簡單啊!!!

? ? 因為無論讀文件還是寫文件的步驟都一樣,只不過使用的類不一樣,所以我們直接來看看如何復(fù)制文件吧。

/***?字節(jié)流方式復(fù)制文件(任何文件都可以復(fù)制)*?@param?oldFile?被復(fù)制文件*?@param?newFile?復(fù)制后的文件*/ public?static?void?copyFile(String?oldFile,?String?newFile){File?srcFile?=?new?File(oldFile);???//源文件對象File?destFile?=?new?File(newFile);??//目標(biāo)文件對象try?{if?(!(destFile.exists()))?{??????//判斷目標(biāo)文件是否存在destFile.createNewFile();??//如果不存在則創(chuàng)建新文件}//使用源文件對象創(chuàng)建文件輸入流對象FileInputStream?fis?=?new?FileInputStream(srcFile);//使用目標(biāo)文件對象創(chuàng)建文件輸出流對象FileOutputStream?fos?=?new?FileOutputStream(destFile);byte[]?buf?=?new?byte[1024];??//創(chuàng)建字節(jié)數(shù)組,作為臨時緩沖,每次讀取的數(shù)據(jù)量System.out.println("開始復(fù)制文件...");while?(fis.read(buf)?!=?-1)?{??//循環(huán)從文件輸入流中讀取數(shù)據(jù),-1表示讀完了文件fos.write(buf);????//寫入到文件輸出流中}System.out.println("文件復(fù)制成功!");fis.close();????//關(guān)閉流fos.close();}?catch?(Exception?e)?{e.printStackTrace();}? }

里面涉及到的幾個對象簡單介紹一下吧。

1.File類:既可以表示文件,也可以表示目錄。常用的方法如下:

2.FileInputStream類:繼承于InputStream類,用于讀文件,以字節(jié)方式將文件中的數(shù)據(jù)輸入到內(nèi)存中。

3.FileOutputStream類:繼承于OutputStream類,用于寫文件,以字節(jié)方式將內(nèi)存中的數(shù)據(jù)輸出到文件中。

注意:因為是以字節(jié)的方式讀或?qū)?#xff0c;所以在處理的過程中,文件是無法使用的,就和我們在網(wǎng)上下載文件是一樣滴道理


二、字符流

????字符流就很好理解了,以字符為最小單位來處理數(shù)據(jù),一般用于處理文本類的文件比較方便,很多小說閱讀器讀取TXT的小說就使用這種方式來處理。

????接下來,分別寫兩個方法以字符流的方式來處理文本文件。

2.1逐行讀取文件內(nèi)容,并顯示到控制臺

/***?讀取文本文件內(nèi)容*?@param?path?文件路徑*/ public?static?void?txtRead(String?path){File?file?=?new?File(path);try?{//通過文件對象創(chuàng)建文件讀取流對象FileReader?fr?=?new?FileReader(file);//將文件讀取流包裝成緩沖讀取流BufferedReader?br?=?new?BufferedReader(fr);String?str;//逐行讀取數(shù)據(jù)while?((str?=?br.readLine())?!=?null){System.out.println(str);}br.close();???//關(guān)閉流fr.close();???//關(guān)閉流}?catch?(Exception?e)?{e.printStackTrace();} }


2.2將輸入的文本保存到文件

/***?寫入文本文件*?@param?path?文件路徑*/ public?static?void?txtWriter(String?path){File?file?=?new?File("test.txt");try?{//通過文件對象創(chuàng)建文件輸出字符流對象FileWriter?fw?=?new?FileWriter(file);//將文件輸出字符流包裝成緩沖流BufferedWriter?bw?=?new?BufferedWriter(fw);bw.write("大家好!");bw.write("我正打算放棄Java,");bw.newLine();????//換個新行bw.write("請多多指教。");bw.close();??????//關(guān)閉流fw.close();??????//關(guān)閉流}?catch?(Exception?e)?{e.printStackTrace();} }


OK,文件的基本操作就介紹這到兒吧,其實實際開發(fā)用得更多的一種方式是序列化和反序列化,這個操作的代碼比較簡單,就不在這兒介紹了,有興趣的小伙伴自行百度一下吧。


“軟件思維”博客地址:51CTO博客園,感興趣的小伙伴可以去看相關(guān)的其它博文。 ?


轉(zhuǎn)載于:https://blog.51cto.com/softi/1966563

總結(jié)

以上是生活随笔為你收集整理的《Java从入门到放弃》JavaSE入门篇:文件操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。