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

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


目录




内容

1、概述

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

2、Reader

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

修饰符 返回值类型 方法名 参数列表 描述
public void close 关闭此输入流并释放与此输入流向关联的系统资源
public abstract int read 从输入流中读取一个字符数据
public int read char[] 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为字符输出流的父类,把信息传输到指定位置,提供基本的功能方法:

修饰符 返回值类型 方法名 参数列表 描述
public void close 关闭此输出流并释放与此流相关的系统资源
public void flush 刷新输出流并强制任何缓冲区字符写出
public void write byte[] b 把b.length字符从指定的字符数组写入此输出流
public void write byte[] b, int off, int len 把len字符从指定字符数组b的偏移量off处开始写入此输出流
public abstract void write int 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章