字符基流

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

FileReader/FileWriter 

java基础之 IO 流(输入/出字符流)_代码示例_02

代码示例

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();

    }
}
 转换字符流

java基础之 IO 流(输入/出字符流)_代码示例_03

java基础之 IO 流(输入/出字符流)_代码示例_04

 代码示例

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();
    }
}
 缓冲字符流

java基础之 IO 流(输入/出字符流)_代码示例_05

 代码示例

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 流(输入/出字符流)_代码示例_06

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

 代码示例

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"));
        //创建输出流
        PrintWriter pw = new PrintWriter(new FileWriter("src/IOTest/clone.txt"));
        //读写操作
        while (true){
            String str = br.readLine();
            if (str == null){
                break;
            }
            //写在一行
//            pw.write(str); || pw.print(str);
            //换行写
            pw.println(str);
            //换行 不要忘记,要不然全部一行
            //刷新缓冲区
            pw.flush();
        }
        //关闭流
        br.close();
        pw.close();
    }
}

 阶段性总结

我带着大家已经写了很多种 流 了,下面还剩一 种流我就只讲其用法,望大家自己尝试。

最为关键的是 掌握 如何创建 流,有了流之后就是调用 api 的事情了。

字符串字符流

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