版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
江蘇理工學(xué)院第9章文件操作—云醫(yī)院數(shù)據(jù)的備份與恢復(fù)時(shí)間:主講人:2025.62025CONTENTS目錄01文件處理02流的基本概念03文件的隨機(jī)訪問(wèn)04云醫(yī)院的醫(yī)護(hù)信息讀取05小結(jié)文件處理Part.01江蘇理工學(xué)院File類是磁盤文件和目錄的抽象表示。提供多種構(gòu)造方法,如File(Stringpathname)、File(Stringparent,Stringfilename)和File(Fileparent,Stringchild),用于創(chuàng)建File對(duì)象。File的構(gòu)造方法File類提供了多種方法來(lái)操作文件和獲取文件信息,如getName()、getParent()、getPath()、exists()、isDirectory()、isFile()、length()、delete()和createNewFile()等。File類成員方法File類簡(jiǎn)介File類成員方法方
法
聲
明功
能StringgetName()返回由此抽象路徑名表示的文件或目錄的名稱StringgetParent()返回此抽象路徑名的父路徑名的路徑名字符串,如果此路徑名沒(méi)有指定父目錄,則返回
nullFilegetParentFile()返回此抽象路徑名的父路徑名的抽象路徑名,如果此路徑名沒(méi)有指定父目錄,則返回
nullStringgetPath()將此抽象路徑名轉(zhuǎn)換為一個(gè)路徑名字符串booleanisAbsolute()測(cè)試此抽象路徑名是否為絕對(duì)路徑名。如果此抽象路徑名是絕對(duì)路徑名,則返回
true;否則返回
falseStringgetAbsolutePath()返回抽象路徑名的絕對(duì)路徑名字符串booleancanRead()測(cè)試應(yīng)用程序是否可以讀取此抽象路徑名表示的文件。當(dāng)且僅當(dāng)此抽象路徑名指定的文件存在且可由應(yīng)用程序讀取時(shí),返回
true;否則返回
falsebooleancanWrite()測(cè)試應(yīng)用程序是否可以修改此抽象路徑名表示的文件。當(dāng)且僅當(dāng)文件系統(tǒng)實(shí)際包含此抽象路徑名表示的文件且允許應(yīng)用程序?qū)υ撐募M(jìn)行寫入時(shí),返回
true;否則返回
falsebooleanexists()測(cè)試此抽象路徑名表示的文件或目錄是否存在。當(dāng)且僅當(dāng)此抽象路徑名表示的文件或目錄存在時(shí),返回
true;否則返回
falsebooleanisDirectory()測(cè)試此抽象路徑名表示的文件是否是一個(gè)目錄,當(dāng)且僅當(dāng)此抽象路徑名表示的文件存在且是一個(gè)目錄時(shí),返回
true;否則返回
falsebooleanisFile()測(cè)試此抽象路徑名表示的文件是否是一個(gè)標(biāo)準(zhǔn)文件。當(dāng)且僅當(dāng)此抽象路徑名表示的文件存在且是一個(gè)標(biāo)準(zhǔn)文件時(shí),返回
true;否則返回
falselonglength()返回由此抽象路徑名表示的文件的長(zhǎng)度。此抽象路徑名表示的文件的長(zhǎng)度,以字節(jié)為單位,如果文件不存在,則返回
0Lbooleandelete()刪除此抽象路徑名表示的文件或目錄。當(dāng)且僅當(dāng)成功刪除文件或目錄時(shí),返回
true;否則返回
falsebooleanexists()測(cè)試此抽象路徑名表示的文件或目錄是否存在。當(dāng)且僅當(dāng)此抽象路徑名表示的文件或目錄存在時(shí),返回
true;否則返回
falseBoolean
createNewFile()若File對(duì)象表示的文件不存在,則調(diào)用此方法創(chuàng)建一個(gè)空文件。若創(chuàng)建成功,則返回
true;否則返回
falsepublicclassFileTest{publicstaticvoidmain(String[]args){Filef=newFile("e:\1.txt"); if(f.exists()){ f.delete(); }else{ try{ f.createNewFile(); }catch(Exceptione){ System.out.println(e.getMessage()); }· System.out.println("文件名:"+f.getName()); System.out.println("文件路徑:"+f.getPath()); System.out.println("絕對(duì)路徑:"+f.getAbsolutePath()); System.out.println("父文件夾名稱:"+f.getParent()); System.out.println(f.exists()?"文件存在":"文件不存在"); System.out.println(f.canWrite()?"文件可寫":"文件不可寫"); System.out.println(f.canRead()?"文件可讀":"文件不可讀"); System.out.println(f.isDirectory()?"是目錄":"不是目錄"); System.out.println(f.isFile()?"是文件":"不是文件"); System.out.println(f.isAbsolute()?"是絕對(duì)路徑":"不是絕對(duì)路徑"); System.out.println("文件大?。?+f.length()+"字節(jié)");}}}0102Java的標(biāo)準(zhǔn)輸入流System.in和標(biāo)準(zhǔn)輸出流System.out分別用于從鍵盤讀取數(shù)據(jù)和向顯示器輸出數(shù)據(jù)。示例代碼使用File類流的基本概念Part.02江蘇理工學(xué)院流的基本信息流(Stream)是一組有序的數(shù)據(jù)序列。根據(jù)操作的類型,流分為輸入流和輸出流兩種。輸入流是指從某種數(shù)據(jù)源(如鍵盤、磁盤文件等)到程序的一個(gè)流,程序可以從這個(gè)流中讀取數(shù)據(jù);輸出流是從程序到某種目的地(如磁盤文件、終端設(shè)備等)的一個(gè)流,程序可以將信息寫入這個(gè)流。流的概念Java的I/O類都包含在java.io包中,有不同的流類滿足不同性質(zhì)的輸入/輸出需要。Java的輸入/輸出流一般分為字節(jié)輸入流、字節(jié)輸出流、字符輸入流和字符輸出流4種。Java針對(duì)這4種流的分類為每個(gè)系列的類設(shè)計(jì)了一個(gè)父類,而實(shí)現(xiàn)具體操作的類都作為該系列類的子類,對(duì)應(yīng)的這4個(gè)抽象父類分別是:InputStream、OutputStream、Reader和Writer。流的分類輸入/輸出流字節(jié)輸入/輸出流方
法
名
稱功
能
描
述intavailable()返回此輸入流方法的下一個(gè)調(diào)用方可以不受阻塞地從此輸入流讀?。ɑ蛱^(guò))的字節(jié)數(shù)voidclose()關(guān)閉此輸入流并釋放與該流關(guān)聯(lián)的所有系統(tǒng)資源voidmark(int
readlimit)在此輸入流中標(biāo)記當(dāng)前的位置abstractintread()從輸入流讀取下一個(gè)數(shù)據(jù)字節(jié)intread(byte[]
b)從輸入流中讀取一定數(shù)量的字節(jié)并將其存儲(chǔ)在緩沖區(qū)數(shù)組
b
中Int
read(byte[]
b,
int
off,int
len)將輸入流中最多
len
個(gè)數(shù)據(jù)字節(jié)讀入字節(jié)數(shù)組voidreset()將此流重新定位到對(duì)此輸入流最后調(diào)用
mark
方法時(shí)的位置longskip(long
n)跳過(guò)和放棄此輸入流中的
n
個(gè)數(shù)據(jù)字節(jié)方
法
名
稱功
能
描
述voidclose()關(guān)閉此輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源voidflush()刷新此輸出流并強(qiáng)制寫出所有緩沖的輸出字節(jié)voidwrite(byte[]
b)將
b.length
個(gè)字節(jié)從指定的字節(jié)數(shù)組寫入此輸出流voidwrite(byte[]
b,int
off,
int
len)將指定字節(jié)數(shù)組中從偏移量
off
開(kāi)始的
len
個(gè)字節(jié)寫入此輸出流abstractvoidwrite(int
b)將指定的字節(jié)寫入此輸出流字符輸入/輸出流方
法
名
稱功
能
描
述abstractvoidclose()關(guān)閉該流oidmark(int
readAheadLimit)標(biāo)記流中的當(dāng)前位置方
法
名
稱功
能
描
述booleanmarkSupported()判斷此流是否支持mark()操作intread()讀取單個(gè)字符intread(char[]
cbuf)將字符讀入數(shù)組abstractintread(char[]
cbuf,int
off,int
len)將字符讀入數(shù)組的某一部分read(CharBuffer
target)試圖將字符讀入指定的字符緩沖區(qū)booleanready()判斷是否準(zhǔn)備讀取此流voidreset()重置該流longskip(long
n)跳過(guò)字符方
法
名
稱功
能
描
述Writerappend(char
c)將指定字符追加到此writerWriterappend(CharSequence
csq)將指定字符序列追加到此writerWriter
append(CharSequence
csq,int
start,int
end)將指定字符序列的子序列追加到此writer.Appendableabstractvoidclose()關(guān)閉此流,但要先刷新它abstractvoidflush()刷新此流voidwrite(char[]
cbuf)寫入字符數(shù)組abstractvoidwrite(char[]
cbuf,
int
off,int
len)寫入字符數(shù)組的某一部分voidwrite(String
str)寫入字符串voidwrite(String
str,int
off,int
len)寫入字符串的某一部分voidwrite(int
c)寫入單個(gè)字符在計(jì)算機(jī)系統(tǒng)中,標(biāo)準(zhǔn)輸入是從鍵盤等外部設(shè)備中獲得數(shù)據(jù),標(biāo)準(zhǔn)輸出是向顯示器等外部設(shè)備發(fā)送數(shù)據(jù)。在Java中,鍵盤用stdin表示,監(jiān)視器用stdout表示。它們均被封裝在System類的類常量in和out中,分別對(duì)應(yīng)System.in和System.out,用于實(shí)現(xiàn)標(biāo)準(zhǔn)輸入和輸出功能,聲明如下:publicfinalstaticInputStreamin;publicfinalstaticPrintStreamout;標(biāo)準(zhǔn)輸入/輸出流FileInputStream用于從文件中讀取字節(jié)數(shù)據(jù),常用構(gòu)造方法包括FileInputStream(Filefile)和FileInputStream(Stringname)。FileInputStreamFileOutputStream用于向文件中寫入字節(jié)數(shù)據(jù),常用構(gòu)造方法包括FileOutputStream(Filefile)、FileOutputStream(Filefile,booleanappend)、FileOutputStream(Stringname)和FileOutputStream(Stringname,booleanappend)。FileOutputStream文件字節(jié)流FileReader用于從文件中讀取字符數(shù)據(jù),常用構(gòu)造方法包括FileReader(Filefile)和FileReader(Stringfilename)。FileReaderfr=newFileReader("./src/第八章/FileReaderExample01.javasrc/main/java/org/example/chapter9/FileReaderExample01.java");while((c=fr.read())!=-1){System.out.print((char)c); }fr.close(); }FileReaderFileWriter用于向文件中寫入字符數(shù)據(jù),常用構(gòu)造方法包括FileWriter(Filefile)、FileWriter(Filefile,booleanappend)、FileWriter(Stringfilename)和FileWriter(Stringfilename,booleanappend)。FileWriter文件字符流fw=newFileWriter("./unicode.dat");//把大寫字母A~Z寫入文件for(intc=65;c<=90;c++){ fw.write(c); num++;}//把小寫字母a~z也寫入文件
for(intc=97;c<=122;c++){fw.write(c);num++;}fw.close();DataInputStream和DataOutputStream用于讀寫基本數(shù)據(jù)類型和字符串,常用方法包括readByte()、readLong()、readChar()、readFloat()、readUTF()、writeByte()、writeLong()、writeChar()、writeFloat()和writeUTF()。DataInputStream和DataOutputStream過(guò)濾器流BufferedReader和BufferedWriterBufferedReader用于按行讀取字符數(shù)據(jù),常用方法包括readLine()。BufferedWriter用于按行寫入字符數(shù)據(jù),常用方法包括newLine()。字符緩沖流沒(méi)有緩沖的I/O,直接讀寫效率就低,為了解決這個(gè)缺點(diǎn),Java提供了基于緩沖的I/O流。帶緩沖的輸入流從一個(gè)類似于緩沖區(qū)的內(nèi)存區(qū)域中讀取數(shù)據(jù),當(dāng)緩沖區(qū)為空時(shí),調(diào)用基本的輸入API完成輸入操作;同樣,帶緩沖的輸出流首先向緩沖區(qū)中寫數(shù)據(jù),在緩沖區(qū)已滿時(shí)調(diào)用基本的輸出API完成輸出操作。緩沖流鏈接在其他節(jié)點(diǎn)流之上,對(duì)讀寫數(shù)據(jù)提供緩沖功能,提高了讀寫效率,并增加了一些新的方法。JDK引入了BufferedReader和BufferedWriter類,用來(lái)對(duì)字符流進(jìn)行成批處理。InputStreamReader和OutputStreamWriterInputStreamReader和OutputStreamWriter用于將字節(jié)流轉(zhuǎn)換為字符流,常用構(gòu)造方法包括InputStreamReader(InputStreamin)、InputStreamReader(InputStreamin,Stringcname)、OutputStreamWriter(OutputStreamout)和OutputStreamWriter(OutputStreamout,Stringcname)。publicclassTransStreamtest{ publicstaticvoidtransWriteNoBuf()throwsIOException{ OutputStreamout=newFileOutputStream("D:\\demo.txt"); OutputStreamWriterosr=newOutputStreamWriter(out); intch=97; osr.write(ch); Stringstr="你好嗎?"; osr.write(str); osr.flush(); osr.close();} publicstaticvoidtransReadNoBuf()throwsIOException{ InputStreamin=newFileInputStream("D:\\demo.txt"); InputStreamReaderisr=newInputStreamReader(in); char[]cha=newchar[1024]; intlen=isr.read(cha); System.out.println(newString(cha,0,len)); isr.close();} publicstaticvoidmain(String[]args)throwsIOException{ transWriteNoBuf(); transReadNoBuf(); }}轉(zhuǎn)換流序列化ObjectInputStream和ObjectOutputStream序列化是將對(duì)象轉(zhuǎn)換為字節(jié)序列的過(guò)程,反序列化是將字節(jié)序列還原為對(duì)象的過(guò)程。對(duì)象必須實(shí)現(xiàn)Serializable接口。publicclassStudentimplementsSerializable{ Stringsno; Stringsname; intsage; Stringsdepartment; publicStudent(Stringsno,Stringsname,intsage,Stringsdepartment){ super(); this.sno=sno; this.sname=sname; this.sage=sage; this.sdepartment=sdepartment; } }ObjectInputStream和ObjectOutputStream用于讀寫對(duì)象,常用方法包括readObject()和writeObject()。對(duì)象流文件的隨機(jī)訪問(wèn)Part.03江蘇理工學(xué)院RandomAccessFile類有以下兩個(gè)構(gòu)造方法。(1)RandomAccessFile(Stringname,Stringmode):創(chuàng)建從中讀取和向其中寫入(可選)的隨機(jī)訪問(wèn)文件流,該文件由file參數(shù)指定。(2)RandomAccessFile(Stringname,Stringmode):創(chuàng)建從中讀取和向其中寫入(可選)的隨機(jī)訪問(wèn)文件流,該文件由name指定。RandomAccessFile類mode值含
義"r"以只讀方式打開(kāi)。調(diào)用結(jié)果對(duì)象的任何write方法都將導(dǎo)致拋出IOException"rw"以讀寫方式打開(kāi)。如果指定的文件不存在,則嘗試創(chuàng)建該文件"rws"以讀寫方式打開(kāi)。同時(shí)對(duì)文件內(nèi)容或元數(shù)據(jù)的每個(gè)更新都同步寫入底層存儲(chǔ)設(shè)備"rwd"以讀寫方式打開(kāi)。同時(shí)對(duì)文件內(nèi)容的每個(gè)更新都同步寫入底層存儲(chǔ)設(shè)備RandomAccessFile類主要方法RandomAccessFile類方
法
名
稱功
能
描
述voidseek(longpos)設(shè)置文件指針位置longgetFilePointer()獲取文件指針位置longlength()返回文件長(zhǎng)度云醫(yī)院的醫(yī)護(hù)信息讀取Part.04江蘇理工學(xué)院文件格式提供的文本文件“醫(yī)生.txt”包含醫(yī)護(hù)人員的基本信息,每行一個(gè)記錄,字段包括科室、職稱、姓名、身份證號(hào)和工號(hào)。呼吸內(nèi)科
主治醫(yī)生
張三有00111001001000123呼吸內(nèi)科
副主任醫(yī)生
黎思華10000111000011123呼吸內(nèi)科
主任醫(yī)生
王伍陸01000111011100123神經(jīng)內(nèi)科
主治醫(yī)生
馬夢(mèng)梅00111000000000123神經(jīng)內(nèi)科
主治醫(yī)生
張新如00111000000000123神經(jīng)內(nèi)科
副主任醫(yī)生
李欣璐00111000000000123神經(jīng)內(nèi)科
副主任醫(yī)生
普亮00111000000000123神經(jīng)內(nèi)科
主任醫(yī)生
楊莉莉00111000000000123普外科
主治醫(yī)生
王一豐00111000110011123普外科
主治醫(yī)生
賴雪明110
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026 年中職精細(xì)化工技術(shù)(精細(xì)化學(xué)品分析)試題及答案
- 辦公環(huán)境裝修合同協(xié)議2025年
- 外星生命探測(cè)
- 2025年河北省公需課學(xué)習(xí)-城市體檢評(píng)估制度
- 冰箱的課件教學(xué)課件
- 2025年預(yù)防艾滋病知識(shí)競(jìng)賽試題及答案(合集)
- 江蘇教編學(xué)科真題及答案
- 第七單元 微專題 圖形的折疊
- 海陸水循環(huán)考試題及答案
- 福清城投筆試真題及答案
- 杜國(guó)楹小罐茶的創(chuàng)業(yè)講稿
- 2025-2026學(xué)年統(tǒng)編版九年級(jí)歷史上冊(cè)(全冊(cè))知識(shí)點(diǎn)梳理歸納
- 滬教版(新版)一年級(jí)下學(xué)期數(shù)學(xué)第4單元100以內(nèi)的加減法單元試卷(附答案)
- 放射科CT檢查注意事項(xiàng)
- 物流運(yùn)輸服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 產(chǎn)業(yè)園招商培訓(xùn)
- 2026年齊齊哈爾高等師范??茖W(xué)校單招綜合素質(zhì)考試題庫(kù)必考題
- 2018版公路工程質(zhì)量檢驗(yàn)評(píng)定標(biāo)準(zhǔn)分項(xiàng)工程質(zhì)量檢驗(yàn)評(píng)定表路基土石方工程
- 導(dǎo)尿管相關(guān)尿路感染(CAUTI)防控最佳護(hù)理實(shí)踐專家共識(shí)解讀
- 2025年廣東深圳高中中考自主招生數(shù)學(xué)試卷試題(含答案詳解)
- SMETA員工公平職業(yè)發(fā)展管理程序-SEDEX驗(yàn)廠專用文件(可編輯)
評(píng)論
0/150
提交評(píng)論