《Java程序设计任务式教程》课件 804 字符流_第1页
《Java程序设计任务式教程》课件 804 字符流_第2页
《Java程序设计任务式教程》课件 804 字符流_第3页
《Java程序设计任务式教程》课件 804 字符流_第4页
《Java程序设计任务式教程》课件 804 字符流_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Java程序设计》Java简介本讲目标字符流的定义和基本用法字符输入流字符输出流字符流的定义和基本用法字符流主要用于处理文本数据的输入和输出。在Java中,字符流通过Reader类和Writer类实现,这两个类都是抽象类。Reader类用于从输入源读取字符数据,而Writer类用于将字符数据写入输出目标。字符输入流及常用方法字符输入流的常用方法方法功能描述intread()从输入流中读取一个字符并返回该字符的Unicode值,如果已经读到流的末尾,则返回-1intread(char[]cbuf)从输入流中读取字符,将它们存储到cbuf字符数组中,并返回实际读取的字符数intread(char[]cbuf,intoff,intlen)从输入流中读取len个字符,将它们存储到cbuf字符数组中从off位置开始存储,并返回实际读取的字符数StringreadLine()从输入流中读取一行文本内容,以字符串形式返回。如果已经到达输入流的末尾,则返回

nullvoidreset()将流重置到最后一次标记的位置voidclose()关闭流并释放与之关联的资源Java中常用的字符输入流有Reader类和其子类FileReader、InputStreamReader、BufferedReader等。FileReader类用于从文件中读取字符数据,InputStreamReader类用于将字节输入流转换为字符输入流,BufferedReader类提供了缓冲功能,可以高效地读取字符数据。字符输入流读取文件1.

System.out.println("\n——第1种:不使用缓冲,一个一个字符读取:");

2.

FileReader

fileReader1

=

null;3.

try

{4.

fileReader1

=

new

FileReader(filePath);5.

int

data;

//

read()方法返回int型数据(字符对应的Unicode值)6.

while

((data

=

fileReader1.read())

!=

-1)

{

//读到末尾返回-17.

System.out.print((char)

data);

//使用强制类型转换回字符型8.

}9.

}

catch

(IOException

e)

{10.

e.printStackTrace();11.

}

finally

{12.

try

{

//使用异常处理机制释放资源

13.

if

(fileReader1

!=

null)

{14.

fileReader1.close();15.

}16.

………………

第1种方法:逐个字符读取,它不使用缓冲,逐个字符地读取文件内容。字符输入流读取文件第2种方法:使用数组读取文件内容,可以一次读取多行。1.

System.out.println("\n——第2种:使用数组,一行一行读取:");

2.

try

(FileReader

fileReader2

=

new

FileReader(filePath))

{3.

char[]

buffer

=

new

char[1024];

//声明数组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种方法:使用缓冲读取,可以高效地逐行读取文件内容。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.

}运行结果如图字符输出流及常用方法字符输出流的常用方法方法功能描述voidwrite(intc)将单个字符写入输出流voidwrite(char[]obuf)将字符数组obuf中的字符写入输出流voidwrite(char[]obuf,intoff,intlen)将字符数组obuf中从off位置开始的len个字符写入输出流voidwrite(Stringstr)将字符串str写入输出流voidwrite(Stringstr,intoff,intlen)将字符串str中从off位置开始的len个字符写入输出流voidflush()刷新输出流,将缓冲区中的数据立即写入到目标设备或文件中

字符输出流用于将字符数据写入到外部设备或输出源。Java中常用的字符输出流有Writer类及其子类FileWriter、OutputStreamWriter、BufferedWriter等。FileWriter类用于向文件中写入字符数据,OutputStreamWriter类将字符输出流转换为字节输出流,BufferedWriter类提供了缓冲功能,可以高效地写入字符数据。字符输入流读取文件字符输出流来写入文本文件的内容。以下案例将展示两种不同的写入方法。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.写入文件");7.

writerData();

//调用writerData()方法8.

System.out.println("2.使用缓冲写入文件");9.

byBufferedWriter();

//调用byBufferedWriter()方法10.

}

程序运行结果如图:字符输入流读取文件12.

private

static

void

writerData()

{13.

try(Writer

writer

=

new

FileWriter("src/exception/file1.txt")){14.

writer.write("我是中国人");15.

}

catch

(Exception

e)

{16.

e.printStackTrace();17.

}18.

}19.

//使用BufferedWriter类减少I/O操作的次数以提高效率20.

private

static

void

byBufferedWriter()

{21.

try

(Writer

writer

=

new

FileWriter("src/exception/file2.txt");22.

BufferedWriter

bufferedWriter

=

new

BufferedWriter(writer))

{23.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论