《Java程序設(shè)計(jì)任務(wù)式教程》課件 804 字符流_第1頁(yè)
《Java程序設(shè)計(jì)任務(wù)式教程》課件 804 字符流_第2頁(yè)
《Java程序設(shè)計(jì)任務(wù)式教程》課件 804 字符流_第3頁(yè)
《Java程序設(shè)計(jì)任務(wù)式教程》課件 804 字符流_第4頁(yè)
《Java程序設(shè)計(jì)任務(wù)式教程》課件 804 字符流_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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)介

《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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論