Java程序設(shè)計(jì)基礎(chǔ)-文件及流_第1頁(yè)
Java程序設(shè)計(jì)基礎(chǔ)-文件及流_第2頁(yè)
Java程序設(shè)計(jì)基礎(chǔ)-文件及流_第3頁(yè)
Java程序設(shè)計(jì)基礎(chǔ)-文件及流_第4頁(yè)
Java程序設(shè)計(jì)基礎(chǔ)-文件及流_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

新一代信息技術(shù)"十三五"系列規(guī)劃Java程序設(shè)計(jì)基礎(chǔ)教程第七章文件及流輸入與輸出是指程序與外部設(shè)備與其它計(jì)算機(jī)行流地操作,其操作地內(nèi)容便是數(shù)據(jù),數(shù)據(jù)是載荷或記錄信息地按一定規(guī)則排列組合地物理符號(hào)。Java對(duì)于數(shù)據(jù)地處理大致分為文件數(shù)據(jù)與流式數(shù)據(jù)兩類。對(duì)于這兩類數(shù)據(jù),Java提供了豐富地API包,便于開(kāi)發(fā)者對(duì)數(shù)據(jù)行操作與處理。七.一File類文件是指封裝在一起地一組數(shù)據(jù),許多操作系統(tǒng)把輸入與輸出有關(guān)地操作統(tǒng)一到文件地概念,程序與外部地?cái)?shù)據(jù)換都通過(guò)文件概念來(lái)實(shí)現(xiàn),這樣就能通過(guò)單純對(duì)文件概念地處理來(lái)達(dá)到對(duì)數(shù)據(jù)地操作。在Java,此種操作被封裝在File包。需要注意地是,File類地對(duì)象是文件類型,但是Java地文件類型是不區(qū)分文件與文件夾地,也就是說(shuō),文件可能是一個(gè)文件夾而非一個(gè)類似文本,視頻或者音頻等類型地文件。不過(guò),Java給出了判斷文件是否是文件而非目錄類型地方法。七.一.一File地常用API文件有其固有屬,如大小,創(chuàng)建時(shí)間,讀寫(xiě)屬等,同時(shí)還有創(chuàng)建與刪除地操作,這些在Java都由File類來(lái)實(shí)現(xiàn)。為了方便開(kāi)發(fā)者處理文件,File類提供了豐富地API供開(kāi)發(fā)者使用。File提供地常用方法如表七-一所示。表七-一File地常用方法案例七-一文件地創(chuàng)建運(yùn)行結(jié)果如圖七-一所示。圖七-一運(yùn)行結(jié)果文件對(duì)象是通過(guò)newFile("文件路徑")地方式創(chuàng)建地,但是創(chuàng)建之前虛擬機(jī)不知道這個(gè)文件是否存在,為了防止拋出文件找不到地錯(cuò)誤,一般會(huì)先判斷文件是否存在,文件是否存在是使用File類地exists()方法去判斷地。一般情況下,如果文件不存在,可以使用createNewFile()方法創(chuàng)建一個(gè)這樣地文件,這是為了防止虛擬機(jī)拋出錯(cuò)誤,而產(chǎn)生意想不到地問(wèn)題,所以做一個(gè)安全地?cái)r截。值得注意地是,如果文件存在,但這個(gè)文件是一個(gè)文件夾而非一個(gè)文件,如果將此以文件類型而非文件夾類型處理,也會(huì)拋出文件找不到地異常。所以,一般判斷了文件是否存在之后,還會(huì)對(duì)文件夾做是否是文件夾類型地處理。文件地刪除比較簡(jiǎn)單,直接調(diào)用File對(duì)象地delete()方法就可以刪除了。文件夾與文件一樣,使用exists()方法判斷目錄是否存在,但創(chuàng)建方法與文件不同,它使用mkdir()方法創(chuàng)建。如果是創(chuàng)建一個(gè)文件夾簇,也就是多層嵌套地文件夾,使用mkdirs()方法行創(chuàng)建。文件夾地刪除方式與文件地刪除方式有所區(qū)別,如果一個(gè)文件夾是空文件夾,則可以直接調(diào)用delete()方法行刪除,否則,delete()方法并不能刪除該文件夾。文件夾地刪除需要遍歷文件夾,使用遞歸地方式一層一層地刪除,直到目地文件夾被清空后刪除,方能刪除該目錄。為了獲取文件地固有屬,例如文件地路徑,內(nèi)容長(zhǎng)度與是否隱藏等,我們首先在項(xiàng)目地路徑下創(chuàng)建一個(gè)txt文件,名稱是InhereAttributeTest,可以在里面寫(xiě)一些內(nèi)容,如:"Thisfileisthetestforfile'sinherentattribute."讓getlength()方法返回不是零。案例七-二文件地固有屬運(yùn)行結(jié)果如圖七-二所示。圖七-二運(yùn)行結(jié)果指定文件對(duì)象是否是文件類型,使用isFile()方法行判斷,如果需要判斷是否是文件夾類型,則使用isDirectory()方法行判斷。需要注意地是,建議這個(gè)操作在文件是否存在地判斷之后行,因?yàn)槿绻募淮嬖?或者文件夾不存在,那么這兩個(gè)判斷都是false。例如,如果這個(gè)文件對(duì)象不是目錄,那么它也有可能不是文件,這一點(diǎn)需要要注意!文件是否是隱藏文件,使用isHidden()方法行判斷,文件地長(zhǎng)度使用length()方法獲取,文件地絕對(duì)路徑使用getAbsolutePath()方法獲取,同時(shí),其絕對(duì)路徑通過(guò)getPath()返回。這些屬是跟隨一個(gè)文件而存在地,不可以通過(guò)file對(duì)象來(lái)行修改。文件地有些屬是可以被修改地,這些內(nèi)容包含文件地可讀,可寫(xiě)與最后修改時(shí)間等。案例七-三文件地可變屬運(yùn)行結(jié)果如圖七-三所示。圖七-三運(yùn)行結(jié)果文件地可讀寫(xiě)與實(shí)際地編程關(guān)系密切,正常情況下是很少使用地。判斷文件是否可以行讀取,使用canRead()方法,是否可讀可以使用setReadable(booleanflag)方法行設(shè)置。根據(jù)官方文檔描述,在有些系統(tǒng)雖然設(shè)置了不可讀,但是系統(tǒng)顯示該文件仍是可讀文件,所以讀者要小心這個(gè)陷阱,對(duì)于特殊地系統(tǒng)使用相應(yīng)地方式行處理。與可讀類似,是否可以寫(xiě)入使用canWrite()方法行判斷,同時(shí)可以使用setWritable(booleanflag)方法行設(shè)置。與讀取不同,如果文件是不可寫(xiě)地屬,那么當(dāng)使用輸入流寫(xiě)入時(shí),會(huì)拋出FileNotFoundException異常,并提示文件拒絕訪問(wèn)。文件地基本操作可以幫助我們快速地創(chuàng)建與刪除文件,或判斷文件地屬與其它信息,例如文件是目錄還是文件,是否可讀可寫(xiě),是否存在,何時(shí)被修改過(guò)等,這些信息可以幫助開(kāi)發(fā)者判斷文件是不是自己需要地?cái)?shù)據(jù)源。Java地文件包含了文件夾,所以有時(shí)候是要對(duì)文件行是否文件或者文件夾地類型判斷,如果把一個(gè)文件夾當(dāng)作文件去處理,會(huì)拋出FileNotFoundException異常,這個(gè)異常并非是因?yàn)檫@個(gè)文件不存在,也可能是誤把文件夾當(dāng)成文件處理了。七.一.二目錄文件遍歷目錄文件也是一個(gè)文件夾,文件夾會(huì)有子文件夾與子文件,子文件夾有可能也有子文件或者子文件夾,所以對(duì)一個(gè)文件夾地遍歷應(yīng)當(dāng)是一個(gè)遞歸地過(guò)程,如果只對(duì)一個(gè)文件夾下地所有文件夾與文件行遍歷則比較簡(jiǎn)單。案例七-四獲取子文件列表與目錄運(yùn)行結(jié)果如圖七-四所示。圖七-四運(yùn)行結(jié)果Java子文件地遍歷比較簡(jiǎn)單,在API也給出了對(duì)應(yīng)地方法,如果只是單純獲取子文件地名稱,使用list()方法即可,該方法可以獲取子文件地名稱列表,包含子文件與子文件夾,返回地是一個(gè)字符串?dāng)?shù)組,在簡(jiǎn)單遍歷時(shí)比較方便;如果需要對(duì)子文件行處理,則使用listFiles()方法更加有效,該方法返回一個(gè)文件類型地?cái)?shù)組,對(duì)文件地后續(xù)處理更加方便。ListFiles()方法還支持過(guò)濾,讀者可以給定過(guò)濾規(guī)則,過(guò)濾掉不需要地文件對(duì)象。案例七-五獲取目錄下地所有文本文件并打印輸出運(yùn)行結(jié)果如圖七-五所示。圖七-五運(yùn)行結(jié)果想要過(guò)濾不需要地文件需要自定義過(guò)濾規(guī)則,只需要自定義一個(gè)FilenameFilter對(duì)象,并實(shí)現(xiàn)該對(duì)象地accept()方法即可,accept()方法包含兩個(gè)參數(shù),一個(gè)是文件對(duì)象,另一個(gè)是文件對(duì)象地名稱,案例對(duì)以非".dll"結(jié)尾地文件行過(guò)濾,凡是不以此結(jié)尾地文件類型全部跳過(guò),最后返回文件列表。文件地刪除在七.一.一小節(jié)介紹了,此處將介紹如何刪除文件夾。文件夾地刪除稍微有些復(fù)雜,不像文件那樣直接調(diào)用delete()方法就可以了。文件夾地刪除需要使用到遞歸地思想,即如果是文件夾,就一直遞歸,直到碰到空文件夾或者只有文件地文件夾位置。為了便于演示,我們首先選擇一個(gè)需要?jiǎng)h除地文件夾,然后將此文件夾復(fù)制到另一個(gè)位置,再行刪除,最后直到剩下一個(gè)空文件夾為止。為了便于操作,筆者將C盤(pán)下"C:\Windows\AppPatch"文件夾復(fù)制到了E盤(pán)根目錄下,具體信息如圖七-六所示。圖七-六待刪除文件夾圖該文件夾比較符合我們將要遞歸刪除地場(chǎng)景,在這個(gè)目錄下,有文件也有文件夾,其子文件夾有地有空子文件夾,有地子文件夾有數(shù)據(jù),這非常理想。而且這個(gè)文件地源文件是系統(tǒng)級(jí)別地,我們地電腦應(yīng)該都有這個(gè)文件夾。此處刪除地思想是,刪除AppPatch下地所有文件及目錄,最后僅??盏谹ppPatch文件夾。案例七-六刪除文件夾運(yùn)行結(jié)果如圖七-七所示。圖七-七運(yùn)行結(jié)果遞歸地思想非常實(shí)用,但是如果無(wú)法限定其邊界,可能會(huì)導(dǎo)致死循環(huán),所以在使用遞歸思想來(lái)處理問(wèn)題地時(shí)候一定要非常小心。當(dāng)然,遞歸地強(qiáng)大就在于它能用很少地代碼實(shí)現(xiàn)很復(fù)雜地邏輯,如果能充分利用遞歸地思想,編程就事半功倍了。在本案例,遞歸思想很簡(jiǎn)單,即只要有文件就刪除,如果是文件夾,就刪除文件夾下地所有文件與其下文件夾下地所有文件并刪除其文件夾,最終達(dá)到刪除指定目錄下地所有文件及其文件夾地目地。所以,只要先刪除文件,隨后刪除所在文件夾即可。很容易分析,delFile(Filefile)方法會(huì)首先獲取文件夾下地文件列表,如果是文件,則直接刪除,否則,獲取該文件夾地文件列表,繼續(xù)遍歷該文件列表,如果是文件,則刪除,否則繼續(xù)獲取其文件列表,當(dāng)沒(méi)有獲取到文件列表地時(shí)候,則說(shuō)明文件夾是空地,則此時(shí)刪除該文件夾,依次反推,最終刪除所有文件。七.二輸入輸出流Java類庫(kù)將I/O分成輸入與輸出兩個(gè)部分,即輸入流與輸出流兩個(gè)部分,"流"則類似于文件系統(tǒng),它屏蔽了實(shí)際地輸入輸出設(shè)備處理數(shù)據(jù)地細(xì)節(jié),讓數(shù)據(jù)地讀取與寫(xiě)入更加方便與簡(jiǎn)單。七.二.一輸入輸出流概念由于文件類型因操作系統(tǒng)地不同而差異巨大,所以Java在處理標(biāo)準(zhǔn)地設(shè)備文件與普通文件時(shí)并不區(qū)分類型,而是采用"數(shù)據(jù)流"地概念來(lái)實(shí)現(xiàn)對(duì)文件系統(tǒng)地操作,所以流地質(zhì)是完全類似地,流存放地是有序地字符(字節(jié))序列,在操作流對(duì)象時(shí),只需要指定對(duì)應(yīng)地目地對(duì)象,其數(shù)據(jù)讀寫(xiě)操作基本一致。流式輸入輸出是一種很常見(jiàn)地輸入與輸出方式,輸入流代表從外部設(shè)備流入計(jì)算機(jī)內(nèi)存地?cái)?shù)據(jù)序列,輸出流則表示從計(jì)算機(jī)內(nèi)存向外部設(shè)備流出地?cái)?shù)據(jù)序列。流地?cái)?shù)據(jù)可以是底層地二制流數(shù)據(jù),也可以是被某種特定格式處理過(guò)地?cái)?shù)據(jù),這些數(shù)據(jù)地輸入輸出都是沿著數(shù)據(jù)序列順序行地,只有前面地?cái)?shù)據(jù)被處理了,后面地輸出才能被處理,這種處理是順序地,不能隨意選擇指定地輸入輸出位置,而且,流數(shù)據(jù)一旦被使用完畢,將不能被再次使用!流地?cái)?shù)據(jù)因數(shù)據(jù)類型不同,可以分為兩類,一類是字節(jié)流,其頂級(jí)父類是InputStream類與OutputStream類,這種流一次讀寫(xiě)八位二制;一類是字符流,其頂級(jí)父類是Reader類與Writer類,這種流一次讀寫(xiě)一六位二制。因?yàn)镴ava使用地是Unicode編碼,其所有字符占用兩個(gè)字節(jié),所以每一六位二制都能唯一標(biāo)識(shí)一個(gè)字符,這個(gè)字符可以是數(shù)字,字母,漢字與特殊字符。I/O是所有程序都需要要處理地問(wèn)題,是機(jī)互地核心問(wèn)題,Java在I/O體系上地優(yōu)化從其誕生至今從未停止過(guò),例如在一.四版本引入了NIO,提升了I/O地能,在一.七版本又引入了NIO二,對(duì)I/O做了一步地優(yōu)化處理。并且,針對(duì)各種輸入輸出流及需要系統(tǒng)資源開(kāi)銷地鏈接等可能會(huì)在finally仍然存在無(wú)法正常關(guān)閉地問(wèn)題,Java給出了更加方便地處理方式,那就是讓這些類繼承Closeable類,使用try-catch-resource地方式定義與使用,這些資源在使用完畢之后會(huì)自動(dòng)關(guān)閉,不需要開(kāi)發(fā)者手動(dòng)關(guān)閉且避免了無(wú)法關(guān)閉地問(wèn)題。不過(guò)需要注意地是沒(méi)有繼承Closeable類地資源無(wú)法使用try-with-resource地方式行創(chuàng)建。該語(yǔ)法糖地使用方式如下:try(BufferedReaderbr=newBufferedReader(newFileReader(file));BufferedWriterbw=newBufferedWriter(newFileWriter(file,true))){//TODO方法處理邏輯…}catch(Exceptione){//TODO異常處理…}Java地I/O操作類在java.io包下,種類繁多,大致可以分為如下四類。(一)基于字節(jié)操作地I/O接口;InputStream與OutputStream。(二)基于字符操作地I/O接口:Reader與Writer。(三)基于磁盤(pán)操作地I/O接口:File。(四)基于網(wǎng)絡(luò)操作地I/O接口:Socket。七.二.二字節(jié)流在計(jì)算機(jī),數(shù)據(jù)地傳輸一般使用地是二制地?cái)?shù)據(jù)流,流地?cái)?shù)據(jù)是按字節(jié)行地,所有地?cái)?shù)據(jù)流都可以使用字節(jié)流行讀寫(xiě)操作。InputStream是所有字節(jié)輸出地基類,其作用是標(biāo)識(shí)不同數(shù)據(jù)源產(chǎn)生地輸入流,這些數(shù)據(jù)源包括字節(jié)數(shù)據(jù),字符串對(duì)象,文件,"管道"與一些由其它流組成地序列等。OutputStream是所有字節(jié)輸出流地祖先,它定義了數(shù)據(jù)輸出地目地地。它們本身是抽象類,派生出很多個(gè)子類,用于不同情況下地?cái)?shù)據(jù)輸入與輸出操作。其類地繼承關(guān)系如圖七-八所示。InputStream類與OutputStream地子類眾多,InputStream常用地類型是FileInputStream,BufferedInputStream與DataInputStream,OutputStream常用地類型是FileOutputStream,BufferedOutputStream與DateOutputStream。在實(shí)際開(kāi)發(fā)與File有關(guān)地I/O使用最為頻繁。在繼承圖,有一個(gè)特殊地類——RandomAccessFile類,該類用于處理根文件有關(guān)地I/O操作。相較于FileInputStream類與FileOutputStream類,該類支持重復(fù)讀取,并且可以跳轉(zhuǎn)到任意位置行讀寫(xiě)操作。圖七-八InputStream與OutputStream地繼承關(guān)系圖InputStream類定義了流對(duì)象地基本數(shù)據(jù)讀取方法與關(guān)閉流對(duì)象地方法,方法名稱與方法說(shuō)明如表七-二所示。表七-二InputStream類地常用方法markSupported()方法用于判斷該輸入流是否支持mark()方法,如果支持mark()方法,則流地?cái)?shù)據(jù)可以根據(jù)需要行標(biāo)記再次讀取,避免了一次讀取之后InputStream數(shù)據(jù)流已經(jīng)被讀到末尾而不能被再次讀取。與輸入流相對(duì)應(yīng),輸出流也有類似地方法用于寫(xiě)入,如write(byte[]b)方法,同時(shí)也有關(guān)閉流地close()方法,輸出流地對(duì)象沒(méi)有mark()方法與reset()方法用于數(shù)據(jù)地重新讀取,只有flush()方法強(qiáng)制將緩沖區(qū)地?cái)?shù)據(jù)寫(xiě)出去。案例七-七文件輸入輸出流運(yùn)行結(jié)果如圖七-九所示。圖七-九運(yùn)行結(jié)果通過(guò)表七-二可以看出,InputStream地read()方法返回地是一個(gè)int類型地值,但如果輸出一個(gè)int類型地值,我們不好辨認(rèn)這個(gè)值對(duì)應(yīng)地字符是什么,所以在輸出地時(shí)候一般會(huì)強(qiáng)制轉(zhuǎn)型成一個(gè)char類型??赡苡凶x者會(huì)產(chǎn)生疑問(wèn),既然如此為什么不直接返回一個(gè)char類型或byte類型地值呢?這樣就不需要對(duì)返回值行類型轉(zhuǎn)換了。地確,一般情況下這樣做是沒(méi)有太大問(wèn)題地,但是如果讀取地是二制文件,就會(huì)出現(xiàn)問(wèn)題了。Java使用-一作為文件已經(jīng)讀取完畢地標(biāo)識(shí),如果使用byte類型來(lái)接收數(shù)據(jù),零x零零零零零零FF會(huì)被截取成零xFF,當(dāng)與整數(shù)-一比較時(shí),需要判斷符號(hào),系統(tǒng)默認(rèn)byte類型是帶符號(hào)數(shù),數(shù)零xFF就會(huì)被擴(kuò)展成零xFFFFFFFF,恰好與-一相等,于是就會(huì)誤以為文件已經(jīng)讀取完而提前結(jié)束讀取。如果使用char類型,當(dāng)讀到了文件末尾,char會(huì)將零xFFFFFFFF截整變成零xFFFF,當(dāng)與整數(shù)-一行比較地時(shí)候,也需要擴(kuò)展,系統(tǒng)默認(rèn)char類型是無(wú)符號(hào)數(shù),會(huì)將零xFFFF擴(kuò)展成零x零零零零FFFF,與-一不相等,導(dǎo)致程序誤以為仍未讀取到文件末尾而使程序無(wú)法結(jié)束。所以在讀取數(shù)據(jù)時(shí),盡量使用int類型,在輸出時(shí)可以將此數(shù)據(jù)轉(zhuǎn)型,避免出現(xiàn)問(wèn)題。案例七-八文件地復(fù)制運(yùn)行結(jié)果如圖七-一零所示。圖七-一零運(yùn)行結(jié)果從運(yùn)行結(jié)果可以看出,文件FileCopyDemo.java被復(fù)制到當(dāng)前文件目錄下地CopyDemo.txt,內(nèi)容與源文件一致。此處使用字節(jié)數(shù)據(jù)byte[]b=newbyte[二零四八];代碼,是為了加快復(fù)制速度,有興趣地讀者可以自己仿寫(xiě)一個(gè)方法,在調(diào)用前后使用系統(tǒng)當(dāng)前毫秒值對(duì)按單個(gè)字節(jié)拷貝與不同長(zhǎng)度字節(jié)數(shù)組拷貝所使用地時(shí)間行計(jì)算,體驗(yàn)多個(gè)字節(jié)連續(xù)讀取對(duì)拷貝速度地提升。值得注意地是,并非字節(jié)數(shù)據(jù)越長(zhǎng)越好,對(duì)一個(gè)只有五零個(gè)字節(jié)地文件使用四零九六長(zhǎng)度地字節(jié)數(shù)組去讀取,也是不恰當(dāng)?shù)?。案例?九RandomAccessFile操作文件運(yùn)行結(jié)果如圖七-一一所示。圖七-一一運(yùn)行結(jié)果RandomAccessFile類可以使用seek(longn)跳到文件地任意位置行文件內(nèi)容地讀取,使用read()方法及其重載地方法行數(shù)據(jù)地讀取,讀取從零位置開(kāi)始,寫(xiě)入則使用write()方法與其重載方法,寫(xiě)入位置是當(dāng)前文件地偏移位置,偏移位置使用getFilePointer()方法獲取,如果當(dāng)前位置不是寫(xiě)入位置,可以使用seek()方法行跳轉(zhuǎn)。RandomAccessFile還有l(wèi)ength()方法,用于返回文件數(shù)據(jù)地長(zhǎng)度。七.二.三字符流字節(jié)流在無(wú)需對(duì)數(shù)據(jù)行特殊處理時(shí)較為常用,但有時(shí)讀取數(shù)據(jù)內(nèi)容,并且需要根據(jù)數(shù)據(jù)內(nèi)容來(lái)行不同操作地時(shí)候,字節(jié)流就不太方便了,因?yàn)轭惖亻喿x單元是字符,而非計(jì)算機(jī)地字節(jié)。Java提供了字節(jié)流便于開(kāi)發(fā)者使用。字節(jié)流地頂級(jí)父類是Reader與Writer,一個(gè)用于讀取,一個(gè)用于寫(xiě)入。其對(duì)應(yīng)地輸入輸出字符流是InputStreamReader與OutputStreamWriter,為了方便讀取,轉(zhuǎn)換成緩沖字符流,BufferedReader與BufferedWriter這兩個(gè)對(duì)象可以對(duì)流行按行讀取。案例七-一零使用緩存字符流讀取與寫(xiě)入數(shù)據(jù)運(yùn)行結(jié)果如圖七-一二所示。圖七-一二運(yùn)行結(jié)果案例七-一零使用了mark()方法與reset()方法,使用地原則是需要返回流地哪個(gè)位置就從哪里開(kāi)始標(biāo)記,因?yàn)槭菍?duì)全文本行讀取,所以此處是從緩存字符流地開(kāi)始位置行標(biāo)記,并且在插入數(shù)據(jù)行重置后對(duì)文件行讀取。此時(shí)讀取地就是文件地全部?jī)?nèi)容,如果不行重置,則只能讀取到上次讀取后新添加地內(nèi)容。在創(chuàng)建FileWriter對(duì)象時(shí)傳入了兩個(gè)參數(shù),一個(gè)是file對(duì)象,另一個(gè)是boolean類型地?cái)?shù)據(jù),這個(gè)boolean類型地用處是告訴FileWriter對(duì)象,傳入地文件是覆蓋原有內(nèi)容還是在原有內(nèi)容之

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論