字符输出流的顶层父类:Writer
共性的成员方法:
write(int c)//写单个字符
write(char[]ch)
write(char[]ch,int off,int len)
write(String str)
write(String str,int off,int len)
文件字符输出流:
把内存中的字符数据写入到硬盘中的文件
构造方法:
FileWriter(String name/File file);
作用:
创建一个FileWriter对象,根据构造方法中的参数创建一个文件,把对象指向文件
使用
创建一个FileWrite对象,构造方法中保存写入数据的目的地
调用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换为字节的过程)!!!
使用flush()把内存缓冲区中的数据刷新到文件中
释放资源:会先把内存缓冲区中的数据刷新到文件中
flush()和close()的区别
flush():刷新缓冲区,流对象可以继续使用
close():先刷新缓冲区,然后通知系统释放资源,流对象就不能使用了
字符输入流的顶层父类:Reader
与字节的输入非常相似,读一个字符时返回读的内容,读多个字符时返回读取的有效长度。
常用的FileReader:继承了InputStreamReader继承Reader
构造方法:FileReader(String name/File file)
try…catch
格式:
try{
可能有异常的代码
}catch(异常类变量 变量名){
异常的处理逻辑
}finally{
一定会执行的代码
释放资源
}
例
//FileWriter fw = null;//提高变量作用域
/*try{
fw = new FileWriter("W:\\1.txt");
fw.write(97);
}catch(IOException e){
System.out.println(e);
}finally {
if(fw!=null){
try{
fw.close();
}catch (IOException ee){
System.out.println(ee);
}
}
}*/
//新特性 在try后加一个(),里面定义流对象,就不用写finnaly了
try(FileWriter fw = new FileWriter("W\\1.TXT")){
fw.write("97");
}catch (IOException e){
System.out.println(e);
}