Java 往文件中写数据,新写入的数据总是覆盖原有数据,实现追加功能

来源:互联网 发布:win8 mac地址修改器 编辑:程序博客网 时间:2024/05/18 02:59
import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.RandomAccessFile;/** * 描述:追加内容到文件末尾 * @author Administrator * */ public class WriteStreamAppend {public static void main(String[] args) { System.out.println("start");    method2("/Users/zhang/Desktop/test.txt", "追加到文件的末尾");                    System.out.println("end");} /**   * 第一种  *      * 追加文件:使用FileOutputStream,在构造FileOutputStream时,把第二个参数设为true      *      * @param fileName      * @param content      */     public static void method1(String file, String conent) {          BufferedWriter out = null;          try {               out = new BufferedWriter(new OutputStreamWriter(                      new FileOutputStream(file, false)));               out.write(conent);           } catch (Exception e) {               e.printStackTrace();           } finally {              try {                   out.close();               } catch (IOException e) {                   e.printStackTrace();               }           }       }        /**     *     * 第二种     * 追加文件:使用FileWriter      *      * @param fileName      * @param content      */     public static void method2(String fileName, String content) {          try {              // 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件               FileWriter writer = new FileWriter(fileName, true);               writer.write(content);               writer.close();           } catch (IOException e) {               e.printStackTrace();           }       }        /**      * 追加文件:使用RandomAccessFile      *      * @param fileName      *             文件名      * @param content      *             追加的内容      */     public static void method3(String fileName, String content) {          try {              // 打开一个随机访问文件流,按读写方式               RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");              // 文件长度,字节数              long fileLength = randomFile.length();              // 将写文件指针移到文件尾。               randomFile.seek(fileLength);               randomFile.writeBytes(content);               randomFile.close();           } catch (IOException e) {               e.printStackTrace();           }       }   }

原创粉丝点击