字符流的基本操作

    技术2023-05-06  76

    Writer和Reader类

    文章目录

    Writer和Reader类前言Writer字符输出流类主要方法案例代码向文件中写入数据运行结果向文件中追加数据运行结果 Reader字符输入流类主要方法案例代码从文件中读取内容运行结果使用循环的方式读取内容运行结果 总结

    前言

    ​ 在java中提供了针对字符输入输出操作的两个类,分别是Writer字符输出流类,Reader字符输入流类。

    Writer字符输出流类

    ​ Writer类为字符输出流类,本身也是一个抽象类,如果要使用此类,则必须通过其子类FileWriter为其进行实例化操作。FileWriter类为Writer类的子类

    主要方法
    序号方法类型描述1public abstract void close() throws IOException普通关闭输出流2public void write(String str) throws IOException普通将字符串输出3public void write(char[] cbuf) throws IOException普通将字符数组输出4public abstract void flush() throws IOException普通强制性清空缓存
    案例代码
    向文件中写入数据
    package chapter_twelve; import java.io.File; import java.io.FileWriter; import java.io.Writer; public class WriterDemo01 { public static void main(String[] args) throws Exception{ //第一步,使用File类找到一个文件 File file = new File("D:" + File.separator + "test.txt"); //第二步,通过其子类实例化父类对象 Writer writer = new FileWriter(file); //第三步,进行写的操作 String string = "Hello World!!!"; writer.write(string); //第四步,关闭输出流 writer.close(); } }
    运行结果

    向文件中追加数据

    package chapter_twelve; import java.io.File; import java.io.FileWriter; import java.io.Writer; public class WriterDemo02 { public static void main(String[] args) throws Exception{ //第一步,使用File类找到一个文件 File file = new File("D:" + File.separator + "test.txt"); //第二步,通过子类实例化父类对象 Writer writer = new FileWriter(file,true); //第三步,进行写的操作 writer.write("\r\nGao Li Wei!!!"); //第四步,关闭字符输出流 writer.close(); } }
    运行结果

    Reader字符输入流类

    ​ Reader也是一个抽象类,使用字符的方式从文件中取出数据,通过其子类FileReader为其进行实例化操作。

    主要方法
    序号方法类型描述1public abstract void close() throws IOException普通关闭输出流2public int read() throws IOException普通读取单个字符3public int read(char[] cbuf) throws IOException普通将内容读到字符数组中,返回读入的长度
    案例代码
    从文件中读取内容
    package chapter_twelve; import java.io.File; import java.io.FileReader; import java.io.Reader; public class ReaderDemo01 { public static void main(String[] args) throws Exception{ //第一步,实例化文件类对象File File file = new File("D:" + File.separator + "test.txt"); //第二步,通过对象的向上转型实例化字符输入流Reader Reader reader = new FileReader(file); //第三步,以字符输入流读取文件中数据 char[] chars = new char[1024]; int len = reader.read(chars); System.out.println(new String(chars,0,len)); //第四步,关闭字符输入流Reader reader.close(); } }
    运行结果

    Hello World!!! Gao Li Wei!!!
    使用循环的方式读取内容
    package chapter_twelve; import java.io.File; import java.io.FileReader; import java.io.Reader; public class ReaderDemo02 { public static void main(String[] args) throws Exception{ //第一步,实例化文件类对象 File file = new File("D:" + File.separator + "test.txt"); //第二步,定义声明字符输出流,并以对象的向上转型为Reader类实例化 Reader reader = new FileReader(file); //第三步,读取文件内的所有数据 char[] chars = new char[1024]; int temp = 0, len = 0; while((temp = reader.read()) != -1){ chars[len++] = (char)temp; } System.out.println(new String(chars,0,len)); //第四步,关闭字符输入流 reader.close(); } }
    运行结果

    Hello World!!! Gao Li Wei!!!

    总结

    ​ 使用字符输出输入流可以方便地对字符串、字符数组、字符直接进行操作,而不必手动(系统会自动转换)的转换为字节进行输入输出操作,总之,字符流也是一种重要的应用,加油!

    Processed: 0.013, SQL: 12