版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
同字节流一样,字符流也有两个抽象的顶级父类,分别是Reader和Writer。其中,Reader是字符输入流,用于从某个源设备读取字符;Writer是字符输出流,用于向某个目标设备写入字符。Reader和Writer作为字符流的顶级父类,也有许多子类。项目导读8.2.1字符流的操作InputStreamReaderLineNumberReaderBufferedReaderCharArrayReaderPipedReaderFileReaderReader8.2.1字符流的操作FileWriterOutputStreamWritererBufferedWriterCharArrayWriter
PipedWriterWriterPrintWriter8.2.1字符流的操作在程序开发中,经常需要对文本文件的内容进行读取,如果想从文件中直接读取字符,便可以使用字符输入流FileReader,通过此流可以从关联的文件中读取一个或一组字符。例8-8创建字符输入流FileReader对象读取文件中的内容importjava.io.*;publicclassexample8_8{
publicstaticvoidmain(String[]args)throwsException{ //创建一个FileReader对象用来读取文件中的字符
FileReaderreader=newFileReader("reader.txt");
intch;//定义一个变量用于记录读取的字符
while((ch=reader.read())!=-1){
//循环判断是否读取到文件的末尾
System.out.println((char)ch);
//不是字符流末尾就转为字符打印 }
reader.close();
//关闭文件读取流,释放资源 }}例8-8创建字符输入流FileReader对象读取文件中的内容字符输入流的read()方法返回的是int类型的值,如果想获得字符就需要进行强制类型转换,如程序源代码就是将变量ch强制转换为char类型再打印。例8-9使用FileWriter将字符写入文件importjava.io.*;publicclassexample8_9{ publicstaticvoidmain(String[]args)throwsException{//创建一个FileWriter("writer.txt");
FileWriterwriter=newFileWriter("writer.txt");
Stringstr="Hello,world";
writer.write(str);//将字符数据写入文本文件中 writer.write("\r\n");//将输出语句换行 writer.close();//关闭写入流,释放资源 }}例8-9使用FileWriter将字符写入文件FileWriter与FileOutputStream一样,如果指定的文件不存在,就会先创建文件,再写入数据,如果文件存在,则会先清空文件中的内容,再进行写入。如果想在文件末尾追加数据,同样需要调用重载的构造方法。例8-9使用FileWriter将字符写入文件importjava.io.*;publicclassexample8_9{ publicstaticvoidmain(String[]args)throwsException{//创建一个FileWriter("writer.txt");
FileWriter
Writer=new
FileWriter("writer.txt",true); Stringstr="Hello,world";
writer.write(str);//将字符数据写入文本文件中 writer.write("\r\n");//将输出语句换行 writer.close();//关闭写入流,释放资源 }}8.2.1字符流的操作字节流可以对一个已存在的流进行封装来实现数据读写功能,利用字节流可以有效地提高读写数据的效率。字符流同样提供了带缓冲区的封装流,分别是BufferedReader和BufferedWriter。8.2.1字符流的操作其中,BufferedReader用于对字符输入流进行封装,BufferedWriter用于对字符输出流进行封装。需要注意的是,在BufferedReader中有一个重要的方法readline(),该方法用于一次读取一行文本。例8-10使用这两个字符流实现文件的复制publicclassexample8_10{publicstaticvoidmain(String[]args)throwsException{
FileReaderreader=newFileReader("src.txt");
//创建一个BufferedReader缓冲对象
BufferedReaderbr=newBufferedReader(reader);
FileWriterWriter=newFileWriter("des.txt");
//创建一个BufferdWriter缓冲区对象
BufferedWriterbW=newBufferedWriter(Writer);
Stringstr;
//每次读取一行文本,判断是否到文件末尾
while((str=br.readLine())!=null){
bW.write(str);
//写入一个换行符,会根据不同的操作系统生成 bW.newLine();
}
br.close();
bW.close();
}}例8-10使用这两个字符流实现文件的复制src.txt显示内容des.txt显示内容由于字符缓冲流内部使用了缓冲区,在循环中调用BufferedWriter的write()方法写入字符时,这些字符首先会被写入缓冲区,当缓冲区写满时或调用close()方法时,缓冲区中的字符才会被写入目标文件。因此在循环结束时一定要调用close()方法,否则极有可能会导致部分存在缓冲区中的数据没有被写入目标文件。8.2.1字符流的操作通过转换流进行数据读写的过程图例8-11将字节流转为字符流importjava.io.*;publicclassexample8_11{
publicstaticvoidmain(String[]args)throwsException{ //创建一个文件字节输入流,并指定源文件 FileInputStreamin=newFileInputStream("src.txt"); //将字节流输入转换成字符输入流 InputStreamReaderisr=newInputStreamReader(in); //创建一个字节输出流对象,并指定目标文件
FileOutputStreamout=newFileOutputStream("des.txt");
//将字节输出流转换成字符输出流
OutputStreamWriterosw=newOutputStreamWriter(out);例8-11将字节流转为字符流
intch;
//定义一个变量用于记录读取的字符
while((ch=isr.read())!=-1){//循环判断是否读取到文件的末尾
osw.write(ch);//将字符数据写入des.txt文件中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国泰君安期货2026届金衍新星SSP招募备考题库有完整答案详解
- 2026福建福州市光荣院招聘行政人员1人备考题库带答案详解(基础题)
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库及参考答案详解(典型题)
- 2026浙江温州市洞头人才发展有限公司招聘启事补充2人备考题库(营业员)含答案详解【综合卷】
- 2026广东云浮市新兴县招募见习岗位人员2人备考题库附完整答案详解(夺冠)
- 2026广西桂林市社会保险事业管理中心招聘公益性岗位人员1人备考题库附答案详解【模拟题】
- 2026广东惠州市惠城区马安镇中心幼儿园招聘备考题库带答案详解(夺分金卷)
- 2026上半年北京事业单位统考市统计局招聘1人备考题库带答案详解(突破训练)
- 2026上海华东师范大学物理学院综合秘书招聘1人备考题库【新题速递】附答案详解
- 2026河南郑外集团郑开学校附中教师招聘1人备考题库附参考答案详解【达标题】
- 2026年春季贵州人民版(2024)六年级下册综合实践活动《小学毕业留念》教学课件
- 湖北省襄阳市2026届高三下学期3月一模统一调研测试数学试题
- 2026年春季安全教育班会记录表(19周):开学安全第一课-启航安全守护新学期
- 2025年黄山职业技术学院单招职业技能测试题库附答案解析
- 小学卫生保洁工作制度
- 粮库全员安全生产责任制度
- 大坝安全监测仪器检验测试规程
- 绿色数据中心 暨对算力行业的一点思考 行业洞察 2026
- 妇产科学精准医学:围产期多组学监测与管理
- 二十届中纪委五次全会知识测试题及答案解析
- (2025年)《爱的教育》阅读测试题答案
评论
0/150
提交评论