IO流部分记忆体系整理
这篇记录的是OutputStreamWriter、FileWriter、BufferedWriter
1.OutputStreamWriter【处理字符流。方向:内存向文件】
父类Writer
OutputStreamWriter类对象下面简写为out
(1)用指定输出流out,写回覆盖掉原来文件或者追加新内容到原来文件
如果是追加,那么out已经完成了对原始文件所有内容的读取
(2)所有带缓冲区的输出流要执行flush操作,最后通过close关闭输出流
代码例子:
package com.cskaoyan.bytestream.transf;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
/**
* @description: 转换流
* @author: 景天老师
**/
public class Demo {
public static void main(String[] args) throws IOException {
//创建转化输出流对象
//【字符】
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("a.txt"));
//写数据
String s = "今日进度:校对需求文档大纲";
//writeSingle(out, s);
//多字符
//writeMuti(out, s);
//直接写字符串
out.write(s,0,s.length());
String encoding = out.getEncoding();//获取输出流的编码
System.out.println(encoding);
out.flush();
//close
out.close();
}
private static void writeMuti(OutputStreamWriter out, String s) throws IOException {
char[] chars = s.toCharArray();//转String到字符数组
out.write(chars,0,chars.length);
}
private static void writeSingle(OutputStreamWriter out, String s) throws IOException {
char[] chars = s.toCharArray();//为了对比,所以写成for循环,每个字符数组元素作为参数
for (int i = 0; i < chars.length; i++) {
out.write(chars[i]);
}
}
}
2.FileWriter【处理字符流。方向:内存向文件】
父类Writer
FileWriter类对象下面简写为fw
(1)用指定输出流fw,写回覆盖掉原来文件或者追加新内容到原来文件
如果是追加,那么fw已经完成了对原始文件所有内容的读取
(2)所有带缓冲区的输出流要执行flush操作,最后通过close关闭输出流
代码例子:
package com.cskaoyan.bytestream.simple;
import java.io.FileWriter;
import java.io.IOException;
/**
* @description:
* @author: 景天老师
**/
public class Demo {
public static void main(String[] args) throws IOException {
//public FileWriter(String fileName)
//public FileWriter(String fileName, boolean append)
FileWriter fw = new FileWriter("a.txt");
fw.write("您好!");
fw.flush();//写回。FileWriter需要写回
fw.close();
}
}
3.BufferedWriter【处理字符流。方向:内存向文件】
父类Writer
BufferedWriter类对象下面简写为bw
(1)用指定输出流bw,写回覆盖掉原来文件或者追加新内容到原来文件
如果是追加,那么bw已经完成了对原始文件所有内容的读取
(2)这里没写flush。最后通过close关闭输出流
【换行:bw.newLine()】
代码例子:
package com.cskaoyan.buffer;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
//缓冲输出字符流
//BufferedWriter,用Writer是字符,在这里BufferedWriter的参数
//是用new新建的FileWriter对象
//FileWriter是比BufferedWriter更内层的一个类,是输出字符流类
BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
bw.write("每天早起");
//newLine()换行
bw.newLine();
bw.write("锻炼抗疲劳能力");
bw.close();//这里需要关闭操作。
//已经需要关闭操作的IO流的类:FileOutputStream
}
}