Java基础00-节点流之一:FileReader\FileWriter

一:Reader与Writer

Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件。不能操作照片,视频等非文本文件;

1、字符输入流:Reader

java.io.Reader抽象类是表示用于读取字符流的所有类的父类,可以读取字符信息到内存中。

- public int read():从输入流读取一个字符,自动提升为int类型,返回该字符的Unicode编码值,如果到达末尾,返回-1

- public int read(char[] cbuf):从输入流中读取一些字符,并将它们存储到字符数组 cbuf中 。每次最多读取cbuf.length个字符。返回实际读取的字符个数。如果已经到达流末尾,没有数据可读,则返回-1

- public int read(char[] cbuf,int off,int len):从输入流中读取一些字符,并将它们存储到字符数组 cbuf中,从cbuf[off]开始的位置存储。每次最多读取len个字符。返回实际读取的字符个数。如果已经到达流末尾,没有数据可读,则返回-1

- public void close():关闭此流释放与此流相关联的任何系统资源

2、字符输出流:Writer

java.io.write抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地。它定义了字节输出流的基本共性功能方法。

- public void write(int c): 写出单个字符;

- public void write(char[] cbuf): 写出字符数组;

- public void write(char[] cbuf,int off,int len): 写出字符数组的某一部分。off:数组的开始索引;len:写出的字符个数;

- public void write(String str): 写出字符串;

- public void write(String str,int off,int len): 写出字符串的某一部分。off: 字符串的开始索引;len: 写出的字符个数;

- public void flush(): 刷新该流的缓冲;

- public void close(): 关闭此流

二:FileReader与FileWriter

1、FileReader

java.io.FileReader类用于读取字符文件,构造时使用系统默认的字符编码和默认字节缓冲区;

- FileReader(File file): 创建一个新的FileReader,给定要读取的File对象;

- FileReader(String fileName): 创建一个新的FileReader,给定要读取的文件的名称;

    @Test
    public void test6() throws IOException {
        FileReader fr = null;
        try {
            File file = new File("D:\\2024TianYuShiJie\\2024TianYuDataSource\\20241111资源\\hello.txt");
            fr = new FileReader(file);
            char[] cbuf = new char[5];
            int len;
            while ((len = fr.read()) != -1) {
                String str = new String(cbuf, 0, len);
                System.out.println(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fr != null) {
                    fr.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

2、FileWriter

java.io.FileWriter类用于写出字符到文件,构造时使用系统默认的字符编码和默认字节缓冲区。

- FileWriter(File file):创建一个新的FileWriter,给定要读取的File对象;

- FileWriter(String fileName):创建一个新的FileWriter,给定要读取的文件的名称;

- FileWriter(File file,boolean append):创建一个新的FileWriter,指明是否在现有文件末尾追加内容。

    public void test9(){
        FileWriter fw = null;
        try{
            File file = new File("D:\\2024TianYuShiJie\\2024TianYuDataSource\\20241114资源\\hello.txt");
            fw = new FileWriter(file);
            fw.write("I LOVE YOU");
            fw.write("you love me");
            fw.write("so bad".toCharArray());
        }catch(IOException e){
            e.printStackTrace();
        }finally {
            try{
                if(fw != null)
                    fw.close();;
            }catch (IOException e){
                throw new RuntimeException(e);
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值