基本写出数据
写出字符: write(int b) 方法 , 每次可以写出一个字符数据 , 代码使用演示:
public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileWriter fw = new FileWriter("fw.txt");// 写出数据fw.write(97); // 写出第1个字符fw.write('b'); // 写出第2个字符fw.write('C'); // 写出第3个字符fw.write(30000); // 写出第4个字符 , 中文编码表中30000对应一个汉字 。/*【注意】关闭资源时,与FileOutputStream不同 。如果不关闭,数据只是保存到缓冲区 , 并未保存到文件 。*/// fw.close();}}输出结果:abC田小贴士:
1.虽然参数为int类型四个字节 , 但是只会保留一个字符的信息写出 。
2.未调用close方法 , 数据只是保存到了缓冲区 , 并未写出到文件中 。
关闭和刷新
因为内置缓冲区的原因 , 如果不关闭输出流 , 无法写出字符到文件中 。但是关闭的流对象 , 是无法继续写出数据 的 。如果我们既想写出数据 , 又想继续使用流 , 就需要 flush 方法了 。
flush :刷新缓冲区 , 流对象可以继续使用 。
close :先刷新缓冲区 , 然后通知系统释放资源 。流对象不可以再被使用了 。
代码使用演示:
public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象FileWriter fw = new FileWriter("fw.txt");// 写 出 数 据 , 通 过 flush fw.write('刷'); // 写出第1个字符fw.flush();fw.write('新'); // 继续写出第2个字符 , 写出成功fw.flush();// 写 出 数 据 , 通 过 close fw.write('关'); // 写出第1个字符fw.close();fw.write('闭'); // 继续写出第2个字符,【报错】java.io.IOException: Stream closed fw.close();}}小贴士:即便是?ush方法写出了数据 , 操作的最后还是要调用close方法 , 释放系统资源 。
写出其他数据
- 写出字符数组 : write(char[] cbuf) 和 write(char[] cbuf, int off, int len) , 每次可以写出字符数 组中的数据 , 用法类似FileOutputStream , 代码使用演示:
- 写出字符串: write(String str) 和 write(String str, int off, int len) , 每次可以写出字符串中的 数据 , 更为方便 , 代码使用演示:
public class FWWrite {public static void main(String[] args) throws IOException {// 使用文件名称创建流对象 , 可以续写数据FileWriter fw = new FileWriter("fw.txt" , true);// 写出字符串fw.write("字节");// 写出换行fw.write("");// 写出字符串fw.write("程序员");// 关闭资源fw.close();}}输出结果: 字节程序员小贴士:字符流 , 只能操作文本文件 , 不能操作图片 , 视频等非文本文件 。当我们单纯读或者写文本文件时 使用字符流 其他情况使用字节流
第四章 IO异常的处理JDK7前处理
之前的入门练习 , 我们一直把异常抛出 , 而实际开发中并不能这样处理 , 建议使用 try…catch…finally 代码 块 , 处理异常部分 , 代码使用演示:
public class HandleException1 {public static void main(String[] args) {// 声明变量FileWriter fw = null; try {//创建流对象fw = new FileWriter("fw.txt");// 写出数据fw.write("程序员"); //程序员} catch (IOException e) { e.printStackTrace();} finally { try {if (fw != null) {fw.close();}} catch (IOException e) { e.printStackTrace();}}}}
推荐阅读
- Java并发的原子性、可见性、有序性
- 数据结构Java实现:循环链表和双向链表
- Javascript创建对象方式总结
- 情侣名字简短好听精选 情侣名字简短好听
- 十二星座古风复姓名字精选 十二星座古风复姓名字
- 茶文化的起源
- 雄鹿两个字母哥 雄鹿34号字母哥
- 读海底两万里有感600字 读海底两万里有感
- 15款Java程序员必备的开发工具
- 2022支付宝福气店礼物在哪看物流,2022支付宝集五福免费打印福字教程