Java:字符流 文件输出 与 读入 方法

2023-12-17 03:29:16

Java:字节流 文件输出与读入方法 并 实现文件拷贝

字符流

字符流底层就是字节流。
字符流 = 字节流 + 字符集

特点:
输入流:一次读入一个字节,遇到中文时,一次读多个字节。
输出流:底层会把数据按照指定的编码精选编码, 变成汉字。
用于对应纯文本操作。

FileReader

  1. 创建字符流对象
  2. 读取数据
    无参,返回int, 读到末尾返回-1
    有参,传入char[],返回长度
    默认也是一个一个字节读,还换转换成10进制返回
    强转为char即可
  3. 释放资源

无参读入:

package com.io.testdemo5;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Test5 {
    public static void main(String[] args) throws IOException {
		
		// 创建字符流对象
        FileReader fr = new FileReader("src\\ccc.txt");

		// 读取数据
        int ch;
        while((ch = fr.read()) != -1) {
            System.out.print((char)ch);
        }
		// 释放资源
        fr.close();
    }
}

在这里插入图片描述
在这里插入图片描述
传入char[] 读入:

package com.io.testdemo5;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Test5 {
    public static void main(String[] args) throws IOException {

        FileReader fr = new FileReader("src\\ccc.txt");

        char[] chars = new char[10];
        int len;
        while ((len = fr.read(chars)) != -1) {
            System.out.print(new String(chars, 0, len));
        }

        fr.close();
    }
}

在这里插入图片描述

其实是将转十进制,强转为char,放入数组中,这三步合并了。

FileWrite

  1. 创建对象,指定位置(产生数据传输通道)
    参数可以是File对象,也可以是路径
  2. 写出数据
    可以传入字符数组,指定起始位置,长度
    也可以传入字符串
    或者int十进制,会自动转为字符
  3. 释放资源
    解除资源占用
package com.io.testdemo6;

import java.io.FileWriter;
import java.io.IOException;

public class Test7 {
    public static void main(String[] args) throws IOException {

        // true表示续写
        FileWriter fw = new FileWriter("src/ccc.txt", true);

        // 传入整数,字符串,字符数组都可以
        fw.write(25105); // 我
        fw.write('一');
        fw.write("你好阿\r\n");
        fw.write(new char[] {'a', 'b', 'c'});

        fw.close();
    }
}

在这里插入图片描述

文章来源:https://blog.csdn.net/Cosmoshhhyyy/article/details/134936333
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。