• IO流系列【使用字符流往磁盘文件中写内容Writer()】


    1.Writer单个字符往文件中写

    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
        java.io.Writer类: 字符输出流的顶层抽象父类   用来写出字符的     写出去
        常用方法:
            - public abstract void close() :关闭流释放资源。
            - public abstract void flush()  :刷新缓冲中的内容到目的地。
            - public void write(int c) :写出一个字符。
            - public void write(char[] chs):写出一个字符数组。
            - public void write(char[] chs, int off, int len) :写出一个字符数组的一部分。
                参数:
                    char[] chs: 字符数组
                    int off: 起始索引
                    int len: 写出字符的个数
            - public void write(String str) :写出一个字符串。
            - public void write(String str, int off, int len) :写出一个字符串的一部分。
                参数:
                    String str: 字符串
                    int off: 起始索引
                    int len: 写出字符的个数
        java.io.Writer类: 抽象类    必须使用子类
        常用子类:
        java.io.FileWriter类:文件字符输出流     向文件写出一个/多个字符的   写出去 目标文件
        构造方法:
            public FileWriter(String path)
            public FileWriter(File path)
                参数: String/File类型的文件路径
    
        步骤:
            1.创建文件字符输出流FileWriter类的对象fw,绑定目标文件
            2.文件字符输出流FileWriter类的对象fw调用write方法,写出字符到文件
            3.文件字符输出流FileWriter类的对象fw调用close方法,关闭流,释放资源
    
    
     */
    public class Demo03Writer {
        public static void main(String[] args) throws IOException {
            //1.创建文件字符输出流FileWriter类的对象fw,绑定目标文件
            FileWriter fw = new FileWriter("day11\\02_代码\\day11\\fw1.txt");
    
            //2.文件字符输出流FileWriter类的对象fw调用write方法,写出字符到文件
    
            fw.write('a');
            fw.write(97);
            fw.write('中');
            fw.write('国');
    
            //3.文件字符输出流FileWriter类的对象fw调用close方法,关闭流,释放资源
            fw.close();
        }
    }

    2.Writer把字符数组往文件中写

    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
    
        常用方法:
            - public void write(char[] chs):写出一个字符数组。
            - public void write(char[] chs, int off, int len) :写出一个字符数组的一部分。
                参数:
                    char[] chs: 字符数组
                    int off: 起始索引
                    int len: 写出字符的个数
            - public void write(String str) :写出一个字符串。
            - public void write(String str, int off, int len) :写出一个字符串的一部分。
                参数:
                    String str: 字符串
                    int off: 起始索引
                    int len: 写出字符的个数
    
        步骤:
            1.创建文件字符输出流FileWriter类的对象fw,绑定目标文件
            2.文件字符输出流FileWriter类的对象fw调用write方法,写出字符到文件
            3.文件字符输出流FileWriter类的对象fw调用close方法,关闭流,释放资源
    
    
     */
    public class Demo04Writer {
        public static void main(String[] args) throws IOException {
            //1.创建文件字符输出流FileWriter类的对象fw,绑定目标文件
            FileWriter fw = new FileWriter("day11\\fw2.txt");
    
            //2.文件字符输出流FileWriter类的对象fw调用write方法,写出字符到文件
            //写出一个字符数组
            char[] chs = "今天工作不努力,明天努力找工作".toCharArray();
            fw.write(chs);
    
            //把chs数组的内容 明天努力找工作 重新写一遍
            //写出一个字符数组的一部分
            fw.write(chs,8,7);
    
            //写出一个字符串
            String s = "键盘敲烂,年薪过百万";
    
            fw.write(s);
    
            //写出一个字符串的一部分, 年薪过百万 重新写一遍
            fw.write(s,5,5);
    
            //3.文件字符输出流FileWriter类的对象fw调用close方法,关闭流,释放资源
            fw.close();
        }
    }

    3.续写和换行

    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
        文件的续写与换行
        1.续写:
            FileWriter类的构造方法
                FileWriter(File path,boolean append)
                FileWriter(String path,boolean append)
                    参数:
                        1.File/String类型的文件路径
                        2.boolean append
                            true: 追加写入,继续写入
                            false: 覆盖写入,重新写入
                            不指定第二个参数,默认是false
        2.换行:
            系统中的换行:
            - Windows系统里,每行结尾是 回车+换行 ,即\r\n;
            - Unix系统里,每行结尾只有 换行 ,即\n;
            - Mac系统里,每行结尾是 回车 ,即\r。从 Mac OS X开始与Linux统一。
    
    
     */
    public class Demo05Writer {
        public static void main(String[] args) throws IOException {
            FileWriter fw = new FileWriter("day11\\02_代码\\day11\\fw3.txt", true);
            fw.write("快到五一放假了....");
            //写换行
            fw.write("\r\n");
            fw.write("有什么安排呢?");
            //写换行
            fw.write("\r\n");
            fw.write("据说出去旅游,人很多...");
            //写换行
            fw.write("\r\n");
            fw.write("还是老实的敲代码吧?");
            //写换行
            fw.write("\r\n");
            fw.close();
        }
    }

    4.flash和close的区别

    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    
    /*
        flush和close的区别
            1.字节流内部没有缓冲区,只要调用write方法,就是写出到目的地,所以不关流,也不会丢失数据
    
            2.字符流内部有缓冲区,调用write方法,先写到缓冲区,如果缓冲区数据存满了,会自动刷新到目的地,
                如果没有执行关闭流的动作,导致缓冲区可能还有数据,程序停止,数据丢失
    
            3.flush方法,把缓冲区中的数据,刷新到目的地,执行flush以后,
                可以继续调用write方法写出数据
    
            4.close方法内部,会先执行一次flush操作
            5.close方法之后,不能继续调用write方法写出数据
    
            记住一句话: io流对象,使用完毕,务必关闭流对象
     */
    public class Demo06FlushVSClose {
        public static void main(String[] args) throws IOException {
            /*FileOutputStream fos = new FileOutputStream("day11\\fc.txt");
            fos.write("你好".getBytes());*/
    
            FileWriter fw = new FileWriter("day11\\fc.txt");
            fw.write("你好\r\n");
    
            //调用flush方法,把缓冲区中的数据,刷新到目的地
            //fw.flush();
    
            fw.write("大家好\r\n");
            //调用flush方法,把缓冲区中的数据,刷新到目的地
            //fw.flush();
    
            /*while(true) {
    
            }*/
            //关闭流
            fw.close();
            //fw.write("好好学习,天天向↑\r\n");
        }
    }
  • 相关阅读:
    oracle数据库 SQL语句、内置函数大全
    oracle数据库常用关键字汇总!
    Java 统计一个项目中src下的所有 .java 文件的代码行数, 注释行数, 空行数
    java用流实现创建文件夹, 文件改名, 文件删除, 文件复制
    深度解析线程工作原理
    重要的几种流:文件流、缓冲流、转换流!
    Java中流的概念和递归算法
    针对集合类容器的归纳总结!
    Comparable、Iterator接口和Collections类的实现方法
    Map接口的一些常用方法
  • 原文地址:https://www.cnblogs.com/hujunwei/p/16110281.html
Copyright © 2020-2023  润新知