还有学生类的代码如下import java.io.*;
public class Student implements Serializable{
private int intId;
private String strName;
private float fChinese;
private float fEnglish;
private float fMath;

public float averageOne()
{
return (fChinese+fEnglish+fMath)/3;
}
public void setId(int intId)
{
this.intId = intId;
}
public void setName(String strName)
{
this.strName = strName;
}
public void setChinese(float fChinese)
{
this.fChinese = fChinese;
}
public void setEnglish(float fEnglish)
{
this.fEnglish = fEnglish;
}
public void setMath(float fMath)
{
this.fMath = fMath;
}


public int getId()
{
return intId;
}
public String getName()
{
return strName;
}
public float getChinese()
{
return fChinese;
}
public float getEnglish()
{
return fEnglish;
}
public float getMath()
{
return fMath;
} }

解决方案 »

  1.   

    被覆盖说明你每次都新建了这个文件,说明你new的地方不对,你看看你每次运行main方法,都调用write方法,而write方法一被调用就new一个新的文件,所以覆盖了,解决方案:就是在main中new然后传参就行,希望能帮到你
      

  2.   

    FileOutputStream fos = new FileOutputStream("student.txt",true);那个true不就是表示在文件末尾添加内容么
      

  3.   

    FileOutputStream fos = new FileOutputStream("student.txt",true);那个true不就是表示在文件末尾添加内容么你对这个方法的  认识不对。,,自己看看api就请出来。 他说的是添加载末尾处,和你这个重新创建文件没有一点关系。。
      

  4.   

    这个是api,我给你拷贝下来,你看看是怎么说的:FileOutputStream
    public FileOutputStream(String name,
                            boolean append)
                     throws FileNotFoundException创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。创建一个新 FileDescriptor 对象来表示此文件连接。 
    首先,如果有安全管理器,则用 name 作为参数调用 checkWrite 方法。 如果该文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它,则抛出 FileNotFoundException。 
    参数:
    name - 与系统有关的文件名
    append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处 
    抛出: 
    FileNotFoundException - 如果该文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它。 
    SecurityException - 如果存在安全管理器,且其 checkWrite 方法拒绝对文件进行写入访问。
    从以下版本开始: 
    JDK1.1 
    另请参见:
    SecurityManager.checkWrite(java.lang.String)
      

  5.   


    import java.io.*;
    import java.util.*;public class test{
    public static void main(String[] args){
    test t = new test();
    for(int i = 0;i<10;i++){
    t.write(i);
    }
    }
    void write(int i){
    try {
    FileOutputStream fos = new FileOutputStream("text.txt",true);
    DataOutputStream dos = new DataOutputStream(fos);
    dos.writeBytes(i+"nihao   ");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    }大哥你看看上面这个代码怎么运行。。
    无论运行多少遍,都会在尾部添加
      

  6.   

    你看看api已经说得很清楚了,有你说的问题  他说的读字节,,,而你读的是对象,方法名称都不一样,,  api你再看看,