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"); } }
标签:write,fw,Writer,---,写出,IO,字符,FileWriter,public 来源: https://www.cnblogs.com/hujunwei/p/16110281.html