写文件与读文件类似,可以是以字节为单位写入,可以是以字符为单位写入。
对应读操作FileOutputStream是以字节为单位进行写入的:
FileOutputStream fileOutputStream=null;
String aString="hello";
try {
fileOutputStream=new FileOutputStream(aFile);
// fileOutputStream=new FileOutputStream("e:/a.txt");
// fileOutputStream=new FileOutputStream(aFile,true);
fileOutputStream.write(aString.getBytes());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(fileOutputStream!=null)
{
try {
fileOutputStream.flush();//write方法输出数据时并不能马上输出到指定的目的,会在内存中暂存,flush()表示强制将缓冲区中的数据发送出去
fileOutputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
这里只是简单替换,如果想实现追加的话只需要这样写FileOutputStream(aFile,true);把第二个参数写为true就可以了。
FileWriter,BufferedWriter是以字符为单位写入的,可以直接写入字符串
FileWriter fileWriter=null;
try {
fileWriter=new FileWriter(aFile);
// FileWriter fileWriter=new FileWriter("");
// FileWriter fileWriter=new FileWriter(aFile,true);//文件续写,追加
fileWriter.write(aString);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(fileWriter!=null)
{
try {
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}