API中如是写:
  FileOutputStream(String name, boolean append) 
          创建一个向具有指定 name 的文件中写入数据的输出文件流。
        append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处 
但是为什么这样连着写两个write时追加输出samuelsonsamuelson;
而不是samuelson呢?package com.justdoit.io;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;public class TestTranForm1 {

public void testAppend(){
File file = new File("D:\\content.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
osw.write("samuelson");
osw.flush();
FileInputStream fis = new FileInputStream(file);
int con = 0;
while((con = fis.read())!=-1){
System.out.print((char)con);
}
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestTranForm1 ttf = new TestTranForm1();
ttf.testAppend();
}
}

解决方案 »

  1.   

    因为你用的上
    同一个  file (File file = new File("D:\\content.txt");)对象.
      

  2.   

    后一个参数可以用来决定是否最加 默认上 falseFileOutputStream fos = new FileOutputStream(file,"是否追加");
      

  3.   

    这样往里面写两次,,肯定是两次都写进去了呀。。
    [code=Java
    FileOutputStream fos = new FileOutputStream(file);
    OutputStreamWriter osw = new OutputStreamWriter(fos);
    osw.write("samuelson");
    osw.close();
    FileOutputStream fos = new FileOutputStream(file);
    OutputStreamWriter osw = new OutputStreamWriter(fos);
    osw.write("samuelson");
    [/code]
    这样写就应该不是追加了,覆盖原来内容写进去了。
      

  4.   

    FileOutputStream fos = new FileOutputStream(file,"true"); 覆盖
    楼上正解
      

  5.   

    楼主理解错了
    楼主怎么不问问为什么程序运行两次都只有两个sim而不是四个sim你再把参数改成true,然后程序多运行几次看看
      

  6.   

    不好意思,我在上面写错了,,重复定义了,,FileOutputStream fos = new FileOutputStream(file);
                OutputStreamWriter osw = new OutputStreamWriter(fos);
                
    osw.write("samuelson"); 
    osw.close(); 
    FileOutputStream fos = new FileOutputStream(file); 
    OutputStreamWriter osw = new OutputStreamWriter(fos); 
    osw.write("samuelson");
      

  7.   

    晕,,上面的也没改到,,
    FileOutputStream fos = new FileOutputStream(file);
                OutputStreamWriter osw = new OutputStreamWriter(fos);
                
    osw.write("samuelson"); 
    osw.close(); 
    FileOutputStream fos = new FileOutputStream(file); 
    OutputStreamWriter osw = new OutputStreamWriter(fos); 
    osw.write("samuelson");
      

  8.   

    。。汗,,太不好意思了,,下面这个才是。。
    FileOutputStream fos = new FileOutputStream(file);
    OutputStreamWriter osw = new OutputStreamWriter(fos);
    osw.write("samuelson"
    osw.close(); 
    fos = new FileOutputStream(file);
    osw = new OutputStreamWriter(fos); 
    osw.write("samuelson");