Java IO流(四)-字符流输出流

发布时间:2024年01月05日

字符输出流

1.1 字符流输出介绍

  • Writer类
    • 写入字符流的最顶层的类 , 是一个抽象类 ,不能实例化 , 需要使用其子类FileWriter类
  • FileWriter类 : 用来写入字符文件的便捷类

1.2 FileWriter的成员

  • 构造方法 :

    • public FileWriter(File file) : 往指定的File路径中写入数据
    • public FileWriter(String fileName) : 往指定的String路径中写入数据
  • 成员方法 :

    • void write(int c)写一个字符
      void write(char[] cbuf)写入一个字符数组
      void write(char[] cbuf, int off, int len)写入字符数组的一部分
      void write(String str)写一个字符串
      void write(String str, int off, int len)写一个字符串的一部分
    • flush()刷新流,还可以继续写数据
      close()关闭流,释放资源,但是在关闭之前会先刷新流。一旦关闭,就不能再写数据

1.3 FileWriter写数据的步骤

  • 1 创建字符输出流对象
    • 注意事项:
      如果文件不存在,就创建。但是要保证父级路径存在。
      如果文件存在就清空
  • 2 写数据
    • 注意事项:
      写出int类型的整数,实际写出的是整数在码表上对应的字母。
      写出字符串数据,是把字符串本身原样写出。
  • 3 释放资源
    • 注意事项:
      每次使用完流必须要释放资源。
public class FileWriterDemo1 {
    public static void main(String[] args) throws IOException {
        // 创建字符输出流对象
        // 如果文件不存在会创建一个空的文件
        // 如果文件存在 , 会把文件中的内容清空
        FileWriter fw=new FileWriter("filewriter.txt");

        //写数据
        fw.write('a');
        fw.write('b');
        //刷新流,把流中的数据刷到硬盘中
        fw.flush();

        //释放资源
        fw.close();
    }
}

/*
    Writer类 : 写入字符流的最顶层的类 , 是一个抽象类 ,不能实例化
    需要使用其子类FileWriter类

    FileWriter类 : 用来写入字符文件的便捷类
    构造方法 :
        public FileWriter(File file) : 往指定的File路径中写入数据
        public FileWriter(String fileName) : 往指定的String路径中写入数据
    成员方法
        void write(int c)	写一个字符
        void write(char[] cbuf)	写入一个字符数组
        void write(char[] cbuf, int off, int len)	写入字符数组的一部分
        void write(String str)	写一个字符串
        void write(String str, int off, int len)	写一个字符串的一部分
        flush()	刷新流,还可以继续写数据
        close()	关闭流,释放资源,但是在关闭之前会先刷新流。一旦关闭,就不能再写数据
 */
public class FileWriterDemo2 {
    public static void main(String[] args) throws IOException {
        // 创建字符输出流对象
        FileWriter fw = new FileWriter("writer2.txt");
        //写数据
        //void write(int c)	写一个字符
        //fw.write("你好");
        //void write(char[] cbuf)	写入一个字符数组
        char[] chs = {'a', 'b', 'c', 'd', 'e'};
        //fw.write(chs);
        //void write(char[] cbuf, int off, int len)	写入字符数组的一部分
        //fw.write(chs,2,3);
        //void write(String str)	写一个字符串
        //fw.write("hello,world");
        //void write(String str, int off, int len)	写一个字符串的一部分
        fw.write("World",2,3);
        //释放资源
        fw.close();
    }
}

1.4 FileWriter练习

public class FileWriteDemo3 {
    public static void main(String[] args) throws IOException {
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username=sc.nextLine();

        System.out.println("请输入密码");
        String password=sc.nextLine();

        //创建字符输出对象
        FileWriter fw=new FileWriter("user.txt");
        //往文件中写入用户名和密码
        fw.write(username);
        fw.write("\r\n");
        fw.write(password);
        fw.flush();
        fw.close();
    }
}
文章来源:https://blog.csdn.net/lisus2007/article/details/135392921
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。