写文件与读文件类似,可以是以字节为单位写入,可以是以字符为单位写入。
对应读操作FileOutputStream是以字节为单位进行写入的:
1 FileOutputStream fileOutputStream=null; 2 String aString="hello"; 3 try { 4 fileOutputStream=new FileOutputStream(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=new FileWriter(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 }
时间: 2024-10-05 05:00:02