IO流-字符流

字节流:适合复制文件等,不适合读写文本文件

字符流:适合读写文本文件内容

FileReader:文件字符输入流

*作用:是以内存为基准,可以把文件中的数据以字符的形式读取到内存中去

|------------------------------------|-----------------|
| 构造器 | 说明 |
| public FileReader(File file) | 创建字符输入流管道与源文件接通 |
| public FileReader(String pathname) | 创建字符输入流管道与源文件接通 |

|---------------------------------|------------------------------------------------|
| 方法名称 | 说明 |
| public int read() | 每次读取一个字符返回,如果发现没有数据可读会返回-1. |
| public int read(char[]buffer) | 每次用一个字符数组去读取数据,返回字符数组读取了多少个字符,如果发现没有数据可读会返回-1. |

复制代码
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Reader;

public class FileReader1 {
    public static void main(String[] args) {
        //1、创建一个文件字符输入流,每次读取一个字符
        try ( Reader rd= new FileReader("D:\\code\\weilai1\\src\\itheima1.txt");
        ){
           //读取文本文件中的内容了
           // int c;//记住每次读取的字符编号
           // while((c= rd.read())!=-1){
            //    System.out.print((char) c);
           // }
            //每次读取一个字符的形式,性能比较差
            //每次读取多个字符,性能比较好
            char []chars=new char[3];
            int len;
            while((len= rd.read(chars))!=-1){
                String str=new String(chars);
                System.out.print(str);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}

Filewriter(文件字符输出流)

作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去。

|---------------------------------------------------|-------------------------|
| 构造器 | 说明 |
| public FileWriter(File file) | 创建字节输出流管道与源文件对象接通 |
| public FileWriter(String filepath) | 创建字节输出流管道与源文件路径接通 |
| public Filewriter(File file,boolean append) | 创建字节输出流管道与源文件对象接通,可追加数据 |
| public Filewriter(String filepath,boolean append) | 创建字节输出流管道与源文件路径接通,可追加数据 |

|----------------------------------------------|------------|
| 方法名称 | 说明 |
| void write(int c) | 写一个字符 |
| void write(String str) | 写一个字符串 |
| void write(String str, int off, int len) | 写一个字符串的一部分 |
| void write(char[ ]cbuf) | 写入一个字符数组 |
| void write(char[ ] cbuf, int off, int len) | 写入字符数组的一部分 |

复制代码
import java.io.FileWriter;
import java.io.IOException;

public class FileWriter1 {
    public static void main(String[] args) {
        //覆盖管道
        try ( FileWriter fw=new FileWriter("D:\\code\\weilai1\\src\\itheima1.txt",true);){
           // void write(int c)
            fw.write('b');
            fw.write('类');
            fw.write(97);
            fw.write("\r\n");//换行
            //void write(String str)
            fw.write("你好,中国");
            fw.write("\r\n");

           // void write(String str, int off, int len)
            fw.write("你好,中国",0,2);
            fw.write("\r\n");
           // void write(char[ ]cbuf)
            char[]chars={'e','我','艾','9','a'};
            fw.write(chars);
            fw.write("\r\n");

           // void write(char[ ] cbuf, int off ,int len)
            fw.write(chars,0,3);
            fw.write("\r\n");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

字符输出流使用时的注意事项

字符输出流输出数据后,必须刷新流或者关闭流,写出的数据才能生效。

fw.flush;刷新流,刷新之后,流还可以继续使用

fw.close;关闭流,包含了刷新流

相关推荐
初恋叫萱萱1 小时前
构建高性能生成式AI应用:基于Rust Axum与蓝耘DeepSeek-V3.2大模型服务的全栈开发实战
开发语言·人工智能·rust
cyforkk2 小时前
12、Java 基础硬核复习:集合框架(数据容器)的核心逻辑与面试考点
java·开发语言·面试
仙俊红2 小时前
LeetCode487周赛T2,删除子数组后的最终元素
数据结构·算法
我材不敲代码6 小时前
Python实现打包贪吃蛇游戏
开发语言·python·游戏
身如柳絮随风扬7 小时前
Java中的CAS机制详解
java·开发语言
-dzk-8 小时前
【代码随想录】LC 59.螺旋矩阵 II
c++·线性代数·算法·矩阵·模拟
韩立学长8 小时前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
风筝在晴天搁浅8 小时前
hot100 78.子集
java·算法
Jasmine_llq8 小时前
《P4587 [FJOI2016] 神秘数》
算法·倍增思想·稀疏表(st 表)·前缀和数组(解决静态区间和查询·st表核心实现高效预处理和查询·预处理优化(提前计算所需信息·快速io提升大规模数据读写效率
超级大只老咪9 小时前
快速进制转换
笔记·算法