ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-04-07 00:03:26  阅读:189  来源: 互联网

标签:write fw Writer --- 写出 IO 字符 FileWriter public


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");
    }
}

 

标签:write,fw,Writer,---,写出,IO,字符,FileWriter,public
来源: https://www.cnblogs.com/hujunwei/p/16110281.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有