FileWriter类是IO流中—字符流的顶层父类
构造方法:
FileWriter(String fileName)
构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append)
构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
String fileName : 文件的名字类型
boolean append 写 true 表示可以续写 --- false, 则写入文件开始处。
如果文件不存在,则会自动创建.
如果文件存在,则会被覆盖.
方法:
.write(String str); 把内容写入文件中
.flush(); 进行刷新,将数据直接写入目的地中.
.close(); 关闭字符流, 这里调用了一次flush()
FileWriter(String fileName) 例子:
有异常,这里选择抛出…后面例子进行捕捉
因为假设在我的电脑我有d盘
所以用路经: “D:\test.txt”
但是把这个程序给到别人,别人电脑没有D盘,就会出现异常
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException { //抛出异常
//内容写入test.txt文本文件中
FileWriter fw = new FileWriter("test.txt"); //这里有一个异常
//调用write方法把abcde写入文件中
fw.write("abcde"); //这里也有个异常
}
}
此时运行,找到test.txt
这个文件发现abcde
并没有在这个文本文件中
因为此时只是在缓冲区中,并没有直接写入文本文件
我们可以在fw.write("abcde");
后面加一句fw.flush();
此时abcde就写入到了文本文件中了.
如果是写完一句就不再写了. 我们可以直接使用fw.close();
直接关闭流
.close();
本身里面就调用了.flush();
FileWriter(String fileName, boolean append) 例子:
可以进行续写
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
//内容写入test.txt文本文件中
FileWriter fw = new FileWriter("test.txt", true); //这里有一个异常
//调用write方法把abcde写入文件中
fw.write("abcde");
//再写入
fw.write("fgh");
//关闭流
fw.close();
}
}
此时文本文件显示的就是abcdefgh
捕捉异常例子:
import java.io.FileWriter;
import java.io.IOException;
public class Demo {
//获取系统属性的换行
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
public static void main(String[] args) {
FileWriter fw = null;
try {
fw = new FileWriter("k:\\date.txt");
fw.write("aaa" + LINE_SEPARATOR + "hahah");
} catch(IOException e) {
System.out.println(e.toString());
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
//code.....
throw new RuntimeException("关闭失败");
}
}
}
}
}
如果要对字符流进行捕捉必须先把对象定义再try
的外面
用 FileWriter fw = null
;
然后再try里面在进行new 对象…
try {
FileWriter fw = new FileWriter("k:\\date.txt");
fw.write("aaa" + LINE_SEPARATOR + "hahah");
}
因为如果这样的话, 那么在finally里面的字符流就关闭不了了
在进行字节流关闭的时候,也要就行异常捕捉, 因为字节流有时候会因为某种原因关不了.