java基础之 IO 流(输入/出字符流)

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础之 IO 流(输入/出字符流)相关的知识,希望对你有一定的参考价值。

字符基流

FileReader/FileWriter 

代码示例

package IOTest;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;

/**
 * ClassName: FileReaderDemo <br/>
 * Description: <br/>
 * date: 2021/8/3 14:52<br/>
 *
 * @author yiqi<br />
 * @since JDK 1.8
 */
public class FileReaderDemo {
    public static void main(String[] args) throws Exception {
        //创建文件输入流
        FileReader fr = new FileReader("src/IOTest/test.txt");
        //创建文件输出流
        FileWriter fw = new FileWriter("src/IOTest/clone.txt");
        //设置文件 一次读取 长度 是 char[] 不是 byte[]
        char[] buffer = new char[1024];
        //读取数据
        while (true){
            int len = fr.read(buffer);
            if (len == -1){
                break;
            }
            fw.write(buffer,0,len);
            //刷新缓存 可写可不写
            fw.flush();
        }
        //关闭流
        fr.close();
        fw.close();

    }
}

 转换字符流

 代码示例

package IOTest;

import java.io.*;

/**
 * ClassName: StringReaderStream <br/>
 * Description: <br/>
 * date: 2021/8/3 22:07<br/>
 *
 * @author yiqi<br />
 * @since JDK 1.8
 */
public class StringReaderStream {
    public static void main(String[] args) throws Exception {
        //创建输入流 编码格式注意统一 下同
        InputStreamReader isr = new InputStreamReader(new FileInputStream("src/IOTest/test.txt"),"utf-8");
        //创建输出流
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("src/IOTest/clone.txt"),"utf-8");
        //读写数据
        //规定一次读取多少
        char[] buffer = new char[1024];
        while (true){
            int len = isr.read(buffer);
            if (len == -1){
                break;
            }
            osw.write(buffer,0,len);
            osw.flush();
        }
        //关闭流
        isr.close();
        osw.close();
    }
}

 缓冲字符流

 代码示例

package IOTest;

import java.io.*;

/**
 * ClassName: BufferReaderDemo <br/>
 * Description: <br/>
 * date: 2021/8/3 22:53<br/>
 *
 * @author yiqi<br />
 * @since JDK 1.8
 */
public class BufferReaderDemo {
    public static void main(String[] args) throws Exception {
        //创建输入流
        BufferedReader br = new BufferedReader(new FileReader("src/IOTest/test.txt"));
        //创建输出流
        BufferedWriter bw = new BufferedWriter(new FileWriter("src/IOTest/clone.txt"));
        //读写操作
        while (true){
            String str = br.readLine();
            if (str == null){
                break;
            }
            //写
            bw.write(str);
            //换行 不要忘记,要不然全部一行
            bw.newLine();
            //刷新缓冲区
            bw.flush();
        }
        //关闭流
        br.close();
        bw.close();
    }
}

 

 

 

以上是关于java基础之 IO 流(输入/出字符流)的主要内容,如果未能解决你的问题,请参考以下文章

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

Java基础知识回顾之六 ----- IO流

Java基础知识回顾之六 ----- IO流

Java基础知识之IO流

java基础之IO流

Java中的IO流之输入流|乐字节