Java基础——I/O字符流

发布于 2018-12-12  26 次阅读


[info]1. 字节输入流[/info]

Reader类通用方法:

// int read() : 从输入流读取一个字符。
// int read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中 。

FileReader:

//FileReader(File file) : 创建一个新的 FileReader ,给定要读取的File对象。
//FileReader(String fileName) : 创建一个新的 FileReader ,给定要读取的文件的名称。

import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Demo06 {
    public static void main(String[] args) throws IOException {
        //FileReader(File file) : 创建一个新的 FileReader ,给定要读取的File对象。
        File f = new File("D:\\File\\Reader.txt");
        FileReader fr = new FileReader(f);
        //定义变量,保存数据
        int i;
        // int read() : 从输入流读取一个字符。
        while ((i = fr.read()) != -1) {
            System.out.print((char) i);
        }
        fr.close();
        System.out.println("\r\n" + "-----------------------------------");

        //FileReader(String fileName) : 创建一个新的 FileReader ,给定要读取的文件的名称。
        FileReader fr1 = new FileReader("D:\\File\\Reader.txt");
        //定义变量,保存有效字符的个数
        int in;
        //定义数组,作为字符数据的容器
        char[] chars = new char[6];
        // int read(char[] cbuf) : 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中 。
        while ((in = fr1.read(chars)) != -1) {
            System.out.println(new String(chars, 0, in));
        }
        fr1.close();
    }
}

只有不快的斧,没有劈不开的柴;只有想不到的人,没有做不到的事。想干总有办法,不想干总有理由!
-----------------------------------
只有不快的斧
,没有劈不开
的柴;只有想
不到的人,没
有做不到的事
。想干总有办
法,不想干总
有理由!

[info]2. 字节输出流[/info]

Write类通用方法:

//void write(int c) 写入单个字符。
//void write(char[] cbuf) 写入字符数组。
//abstract void write(char[] cbuf, int off, int len)
//void write(String str) 写入字符串。
//void write(String str, int off, int len)
//void flush() 刷新该流的缓冲。
//void close() 关闭此流,但要先刷新它。

FileWrite类通用方法:

//FileWriter(File file) : 创建一个新的 FileWriter,给定要读取的File对象。
//FileWriter(String fileName) : 创建一个新的 FileWriter,给定要读取的文件的名称。
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class Demo07 {
    public static void main(String[] args) throws IOException {
        //FileWriter(File file) : 创建一个新的 FileWriter,给定要读取的File对象。
        File file = new File("D:\\File\\Writer.txt");
        FileWriter fw = new FileWriter(file);
        //void write(int c) 写入单个字符。
        fw.write(99);
        //void flush() 刷新该流的缓冲。
        fw.flush();
        //void close() 关闭此流,但要先刷新它。
        fw.close();


        //FileWriter(String fileName) : 创建一个新的 FileWriter,给定要读取的文件的名称。
        FileWriter fw1 = new FileWriter("D:\\File\\Writers.txt", true);
        char[] chars = "成为海贼王的男人".toCharArray();

        //void write(char[] cbuf) 写入字符数组。
        fw1.write(chars);
        fw1.write("\r\n");
        //abstract void write(char[] cbuf, int off, int len)
        fw1.write(chars, 3, 4);
        fw1.write("\r\n");


        String str = "大千世界龙卷风";
        //void write(String str, int off, int len)
        fw1.write(str, 2, 2);

        //void write(String str) 写入字符串。
        fw1.write("\r\n" + "路飞");
        fw1.close();
    }
}

打印输出结果:


Nothing is impossible