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 | 创建文件输出流以追加方式写入指定名称的文件 |
-
使用步骤
- 创建文件输出流对象,指定写入文件
- 调用write方法把数据写入文件
- 调用close方法关闭输出流释放相关的系统资源
-
示例3.1-1:把指定内容输入d.txt中,内容:"+ 使用步骤
- 创建文件输出流对象,指定写入文件
- 调用write方法把数据写入文件
- 调用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