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