FileWriter类的详解(画图分析)

FileWriter字符输出流

既然是字符输出流就表明输出的是字符,因此我们不必考虑一个字符有几个字节这个问题

关系图:

在这里插入图片描述
老规矩看一下构造方法

FileWriter(File file)               给一个File对象构造一个FileWriter对象。
FileWriter(File file, boolean append)  给一个File对象构造一个FileWriter对象。
FileWriter(FileDescriptor fd)         构造与文件描述符关联的FileWriter对象。
FileWriter(String fileName)            构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append)   构造一个FileWriter对象,给出一个带有布尔值的文件名,
表示是否附加写入的数据

大白话解释

FileWriter 构造方法就是创建该对象,参数表明创建对象时要指定输出的地址,既然要输出我总要先知道输出的目的地址吧,第二个参数表明我在输出的时候是否要覆盖源内容(默认为false覆盖)可以加一个参数true表示追加不覆盖。

详细看一下成员方法

//FileWriter的成员方法writer都没有返回值类型
write(char[] ch)       //一次写入一个字符数组
write(int c)           //写入int类型为对应的字符
write(String s)       //写入字符串
write(char[] ch,int off,int len)    //写入字符数组指定偏移量和长度
write(String str,int off,int len)   //写入从字符串off索引开始,len个长度的字符

写代码演示

File file = new File("D:\\www\\love.txt");  //定义一个File类的对象
Writer out = new FileWriter(file);   //多态的写法
//简写
// writer fi =new FileWriter("D:\\www\\love.txt");
    fi.write(97);        //97-->对应的字符a  输出a
	fi.write("\r\n");    //换行
	fi.write('a');      //a
	fi.write('我');     //我
	fi.write("我爱中国");    //我爱中国
	fi.write("我爱中国",2,2);   //中国
	//定义一个字符数组
	char[] ch = {'我','爱','世','界'};    
	fi.write(ch);          //我爱世界
	fi.write(ch,2,2);    //世界
	fi.flush();       //刷新
	fi.write("可以继续输出");   //可以继续输出
	fi.close();      //关闭流
    fi.write(97);    //会报错,因为此时的流已经关闭。java.io.IOException: Stream closed

**flush :刷新缓冲区,流对象可以继续使用

-close :关闭流,释放系统资源。关闭前会刷新缓冲区。**

小结:

    字符输出流可以写字符数据出去,总共有5个方法写字符。
    
    覆盖管道:
         Writer fw = new FileWriter("Day10Demo/src/dlei03.txt"); // 覆盖数据管道
    追加数据管道:
    
         Writer fw = new FileWriter("Day10Demo/src/dlei03.txt",true); // 追加数据管道
         
    换行:   fw.write("\r\n"); // 换行
         
    读写字符文件数据建议使用字符流。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值