java复习第8天---8.2---IO流---字符流

java复习第8天---8.2---IO流---字符流

目录




内容

1、概述

  当使用字符流读取文本文件时,可能会有问题。遇到中文字符时,不能不会显示完整的字符,因为一个中文字符可能占用多个字符存储。所以java提供字符流,以字符为单位,专门处理文本文件。

2、Reader

  字符输入流父类,常用方法:

修饰符返回值类型方法名参数列表描述
publicvoidclose关闭此输入流并释放与此输入流向关联的系统资源
public abstractintread从输入流中读取一个字符数据
publicintreadchar[] cbuf从输入流中读取b.length个字符的数据存入指定字符数组cbug中,返回实际读取的字符数

2.1、FileReader

  文件字符输入流。

  • 常用构造方法
参数列表描述
File file通过打开与实际文件的连接创建一个 FileReader ,该文件由文件系统中的 File对象 file命名。
String name通过打开与实际文件的连接来创建一个 FileReader ,该文件由文件系统中的路径名 name命名。
  • 示例1.2.1-1:读取a.txt中的内容并显示

      package io.stream.reader.fileReader;
    
      import java.io.FileNotFoundException;
      import java.io.FileReader;
      import java.io.IOException;
    
      public class TestFileReader1 {
      	public static void main(String[] args) throws IOException {
      		String source = "f:\\test\\a.txt";
    
      		FileReader fr = new FileReader(source);
    
      		char[] buf = new char[1024];
      		int len;
      		while((len = fr.read(buf)) != -1) {
      			System.out.println(new String(buf, 0, len));
      		}
    
      		fr.close();
      	}
      }
      测试结果:
      欢迎入坑JAVA!《JAVA从入门到放弃》
      《JAVA从入门到放弃》
    

3、Writer

  Outputstream为字符输出流的父类,把信息传输到指定位置,提供基本的功能方法:

修饰符返回值类型方法名参数列表描述
publicvoidclose关闭此输出流并释放与此流相关的系统资源
publicvoidflush刷新输出流并强制任何缓冲区字符写出
publicvoidwritebyte[] b把b.length字符从指定的字符数组写入此输出流
publicvoidwritebyte[] b, int off, int len把len字符从指定字符数组b的偏移量off处开始写入此输出流
public abstractvoidwriteint len将指定的字符写入此输出流

3.1、FileWriter

  FileOutputStream 文件字符输出流,用于数据写入文件当中。

  • 常用构造方法
参数类别描述
File file创建文件输出流到以写入File对象对应的文件中
File file, boolean append创建文件输出流以追加方式写入由指定的 File对象表示的文件
String name创建文件输出流以写入指定名称的文件
String name, boolean append创建文件输出流以追加方式写入指定名称的文件
  • 使用步骤

    1. 创建文件输出流对象,指定写入文件
    2. 调用write方法把数据写入文件
    3. 调用close方法关闭输出流释放相关的系统资源
  • 示例3.1-1:把指定内容输入d.txt中,内容:"+ 使用步骤

    1. 创建文件输出流对象,指定写入文件
    2. 调用write方法把数据写入文件
    3. 调用close方法关闭输出流释放相关的系统资源"
  • 代码3.1-1:

      package io.stream.reader.fileWriter;
    
      import java.io.FileWriter;
      import java.io.IOException;
    
      public class TestFileWriter1 {
      	public static void main(String[] args) throws IOException {
      		String path = "f:\\test\\d.txt";
    
      		FileWriter fw = new FileWriter(path);
    
      		String txt = "+ 使用步骤\r\n" + 
      				"	1. 创建文件输出流对象,指定写入文件\r\n" + 
      				"	2. 调用write方法把数据写入文件\r\n" + 
      				"	3. 调用close方法关闭输出流释放相关的系统资源";
    
      		fw.write(txt.toCharArray());
      		fw.close();
    
      	}
      }
      测试结果:自己测试
    

4、字符流文本复制

  • 需求:把d.txt 文件内容复制到e.txt中

  • 代码4-1:

      package io.stream.charStream;
    
      import java.io.FileReader;
      import java.io.FileWriter;
      import java.io.IOException;
    
      public class FileCopy {
      	public static void main(String[] args) throws IOException {
      		String source = "f:\\test\\d.txt";
      		String dest = "f:\\test\\e.txt";
    
      		fileCopy(source, dest);
      	}
    
      	public static void fileCopy(String source, String dest) throws IOException {
      		FileReader fis = new FileReader(source);
      		FileWriter fos = new FileWriter(dest);
    
      		char[] b = new char[1024];
      		int len;
    
      		while((len = fis.read(b)) != -1) {
      			fos.write(b, 0, len);
      		}
    
      		fis.close();
      		fos.close();
      	}
      }
      测试结果:
      d.txt
      	+ 使用步骤
      		1. 创建文件输出流对象,指定写入文件
      		2. 调用write方法把数据写入文件
      		3. 调用close方法关闭输出流释放相关的系统资源
    
      e.txt
      	+ 使用步骤
      		1. 创建文件输出流对象,指定写入文件
      		2. 调用write方法把数据写入文件
      		3. 调用close方法关闭输出流释放相关的系统资源
    

后记

本项目为参考某马视频开发,相关视频及配套资料可自行度娘或者联系本人。上面为自己编写的开发文档,持续更新。欢迎交流,本人QQ:806797785

前端项目源代码地址:https://gitee.com/gaogzhen/vue-leyou
    后端JAVA源代码地址:https://gitee.com/gaogzhen/JAVA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值