package filewriter.p1;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterDemo
{
//获取当前系统的换行符
/*
* 获取指定键指示的系统属性。
* 首先,如果有安全管理器,则用该键作为其参数来调用 checkPropertyAccess 方法。
* 结果可能导致 SecurityException。
* 如果没有当前系统属性的集合,则首先用与 getProperties 方法相同的方式创建并初始化系统属性的集合。
*/
private static final String Line_Separator = System
.getProperty(“line.separator”);
public static void main(String[] args)
{
// TODO Auto-generated method stub
//流对象的处理 一般是在try块外部进行对象的声明 在try块内部进行对象的初始化
FileWriter writer = null;
try
{
/*
* 1、FileWriter用来写入字符文件的便捷类
* 2、在创建该类对象时会抛出IO异常是为了保证地址的明确性
* (比如我在创建的时候将数据写到k盘,当拷贝到另一台电脑上时有可能k盘不存在)
* 3、FileWriter创建的目标对象如果不存在则自动创建,存在则覆盖,
*/
writer = new FileWriter("aa.txt");
//write()方法会将数据写到临时存储缓冲区,在缓冲区还没有写满的情况下 该方法不会自动刷新将数据输出到目标文件
writer.write("def " + Line_Separator + "abcc");
writer.flush();
writer.write("第二次写数据");
//在调用write()方法后要记得手动刷新缓冲区
writer.flush();
/**
* 如果调用close()方法的话 在关闭之前该方法会自动调用flush()方法进行自动刷新
* 但需要注意的是此时FileWriter对象处于关闭状态
*/
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} finally
{
//避免空指针异常
if (writer != null)
{
try
{
//关闭流对象时需要异常处理
writer.close();
} catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}