版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《Java程序設(shè)計(jì)》Java簡(jiǎn)介本講目標(biāo)字符流的定義和基本用法字符輸入流字符輸出流字符流的定義和基本用法字符流主要用于處理文本數(shù)據(jù)的輸入和輸出。在Java中,字符流通過(guò)Reader類(lèi)和Writer類(lèi)實(shí)現(xiàn),這兩個(gè)類(lèi)都是抽象類(lèi)。Reader類(lèi)用于從輸入源讀取字符數(shù)據(jù),而Writer類(lèi)用于將字符數(shù)據(jù)寫(xiě)入輸出目標(biāo)。字符輸入流及常用方法字符輸入流的常用方法方法功能描述intread()從輸入流中讀取一個(gè)字符并返回該字符的Unicode值,如果已經(jīng)讀到流的末尾,則返回-1intread(char[]cbuf)從輸入流中讀取字符,將它們存儲(chǔ)到cbuf字符數(shù)組中,并返回實(shí)際讀取的字符數(shù)intread(char[]cbuf,intoff,intlen)從輸入流中讀取len個(gè)字符,將它們存儲(chǔ)到cbuf字符數(shù)組中從off位置開(kāi)始存儲(chǔ),并返回實(shí)際讀取的字符數(shù)StringreadLine()從輸入流中讀取一行文本內(nèi)容,以字符串形式返回。如果已經(jīng)到達(dá)輸入流的末尾,則返回
nullvoidreset()將流重置到最后一次標(biāo)記的位置voidclose()關(guān)閉流并釋放與之關(guān)聯(lián)的資源Java中常用的字符輸入流有Reader類(lèi)和其子類(lèi)FileReader、InputStreamReader、BufferedReader等。FileReader類(lèi)用于從文件中讀取字符數(shù)據(jù),InputStreamReader類(lèi)用于將字節(jié)輸入流轉(zhuǎn)換為字符輸入流,BufferedReader類(lèi)提供了緩沖功能,可以高效地讀取字符數(shù)據(jù)。字符輸入流讀取文件1.
System.out.println("\n——第1種:不使用緩沖,一個(gè)一個(gè)字符讀取:");
2.
FileReader
fileReader1
=
null;3.
try
{4.
fileReader1
=
new
FileReader(filePath);5.
int
data;
//
read()方法返回int型數(shù)據(jù)(字符對(duì)應(yīng)的Unicode值)6.
while
((data
=
fileReader1.read())
!=
-1)
{
//讀到末尾返回-17.
System.out.print((char)
data);
//使用強(qiáng)制類(lèi)型轉(zhuǎn)換回字符型8.
}9.
}
catch
(IOException
e)
{10.
e.printStackTrace();11.
}
finally
{12.
try
{
//使用異常處理機(jī)制釋放資源
13.
if
(fileReader1
!=
null)
{14.
fileReader1.close();15.
}16.
………………
第1種方法:逐個(gè)字符讀取,它不使用緩沖,逐個(gè)字符地讀取文件內(nèi)容。字符輸入流讀取文件第2種方法:使用數(shù)組讀取文件內(nèi)容,可以一次讀取多行。1.
System.out.println("\n——第2種:使用數(shù)組,一行一行讀取:");
2.
try
(FileReader
fileReader2
=
new
FileReader(filePath))
{3.
char[]
buffer
=
new
char[1024];
//聲明數(shù)組4.
int
charsRead;5.
while((charsRead
=
fileReader2.read(buffer,0,buffer.length))!=-1)
{6.
System.out.print(new
String(buffer,
0,
charsRead));7.
}8.
}
catch
(IOException
e)
{9.
e.printStackTrace();10.
}字符輸入流讀取文件第3種方法:使用緩沖讀取,可以高效地逐行讀取文件內(nèi)容。1.
System.out.println("\n——第3種:使用緩沖,一行一行讀取:");
2.
try
(FileReader
fileReader3
=
new
FileReader(filePath);3.
BufferedReader
bufferedReader
=
new
BufferedReader(fileReader3))
{4.
String
line;5.
while
((line
=
bufferedReader.readLine())
!=
null)
{6.
System.out.println(line);7.
}8.
}
catch
(IOException
e)
{9.
e.printStackTrace();10.
}運(yùn)行結(jié)果如圖字符輸出流及常用方法字符輸出流的常用方法方法功能描述voidwrite(intc)將單個(gè)字符寫(xiě)入輸出流voidwrite(char[]obuf)將字符數(shù)組obuf中的字符寫(xiě)入輸出流voidwrite(char[]obuf,intoff,intlen)將字符數(shù)組obuf中從off位置開(kāi)始的len個(gè)字符寫(xiě)入輸出流voidwrite(Stringstr)將字符串str寫(xiě)入輸出流voidwrite(Stringstr,intoff,intlen)將字符串str中從off位置開(kāi)始的len個(gè)字符寫(xiě)入輸出流voidflush()刷新輸出流,將緩沖區(qū)中的數(shù)據(jù)立即寫(xiě)入到目標(biāo)設(shè)備或文件中
字符輸出流用于將字符數(shù)據(jù)寫(xiě)入到外部設(shè)備或輸出源。Java中常用的字符輸出流有Writer類(lèi)及其子類(lèi)FileWriter、OutputStreamWriter、BufferedWriter等。FileWriter類(lèi)用于向文件中寫(xiě)入字符數(shù)據(jù),OutputStreamWriter類(lèi)將字符輸出流轉(zhuǎn)換為字節(jié)輸出流,BufferedWriter類(lèi)提供了緩沖功能,可以高效地寫(xiě)入字符數(shù)據(jù)。字符輸入流讀取文件字符輸出流來(lái)寫(xiě)入文本文件的內(nèi)容。以下案例將展示兩種不同的寫(xiě)入方法。1.
import
java.io.BufferedWriter;2.
import
java.io.FileWriter;3.
import
java.io.Writer;4.
public
class
Demo8_6
{5.
public
static
void
main(String[]
args)
{6.
System.out.println("1.寫(xiě)入文件");7.
writerData();
//調(diào)用writerData()方法8.
System.out.println("2.使用緩沖寫(xiě)入文件");9.
byBufferedWriter();
//調(diào)用byBufferedWriter()方法10.
}
程序運(yùn)行結(jié)果如圖:字符輸入流讀取文件12.
private
static
void
writerData()
{13.
try(Writer
writer
=
new
FileWriter("src/exception/file1.txt")){14.
writer.write("我是中國(guó)人");15.
}
catch
(Exception
e)
{16.
e.printStackTrace();17.
}18.
}19.
//使用BufferedWriter類(lèi)減少I(mǎi)/O操作的次數(shù)以提高效率20.
private
static
void
byBufferedWriter()
{21.
try
(Writer
writer
=
new
FileWriter("src/exception/file2.txt");22.
BufferedWriter
bufferedWriter
=
new
BufferedWriter(writer))
{23.
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大方租車(chē)合同范本
- 林地租賃協(xié)議合同
- 林業(yè)流轉(zhuǎn)合同范本
- 木工合同轉(zhuǎn)包協(xié)議
- 模具費(fèi)支付協(xié)議書(shū)
- 沒(méi)收訂金合同范本
- 北京聯(lián)通協(xié)議書(shū)
- 大棚賣(mài)棚合同范本
- 建房定金合同范本
- 委托回收合同范本
- 鐵路工程道砟購(gòu)銷(xiāo)
- 2024年廣東省廣州市中考?xì)v史真題(原卷版)
- 壯醫(yī)藥線療法
- 超星爾雅學(xué)習(xí)通《中國(guó)古代史(中央民族大學(xué))》2024章節(jié)測(cè)試答案
- 項(xiàng)目4任務(wù)1-斷路器開(kāi)關(guān)特性試驗(yàn)
- 編輯打印新課標(biāo)高考英語(yǔ)詞匯表3500詞
- (高清版)DZT 0215-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 煤
- 高層建筑消防安全培訓(xùn)課件
- 實(shí)驗(yàn)診斷學(xué)病例分析【范本模板】
- 西安交大少年班真題
- JJF(石化)006-2018漆膜彈性測(cè)定器校準(zhǔn)規(guī)范
評(píng)論
0/150
提交評(píng)論