使用Java将类对象保存到文本文件

时间:2014-06-29 10:39:02

标签: java objectoutputstream

Java初学者,制作学生管理程序,其中有班级学生,我想保存学生的数据,作为文本文件的对象。我尝试使用Objectoutputstream,但文件中的内容显示以某种尴尬的形式。任何帮助都会得到极大的赞赏。

1 个答案:

答案 0 :(得分:3)

您可以尝试使用以下示例代码在Java中使用ObjectOutputStream,以便将其写入文件中:

import java.io.Serializable;

public class Person implements Serializable {

    private String firstName;
    private String lastName;
    private int age;

    public Person() {
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    //Overriding toString to be able to print out the object in a readable way
    //when it is later read from the file.
    public String toString() {

        StringBuffer buffer = new StringBuffer();
        buffer.append(firstName);
        buffer.append("\n");
        buffer.append(lastName);
        buffer.append("\n");
        buffer.append(age);
        buffer.append("\n");

        return buffer.toString();
    }


}

这是用于创建Person类的实例并将它们写入ObjectOuputStream的代码:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class Main {

    /**
     * Example method for using the ObjectOutputStream class
     */
    public void writePersons(String filename) {

        ObjectOutputStream outputStream = null;

        try {

            //Construct the LineNumberReader object
            outputStream = new ObjectOutputStream(new FileOutputStream(filename));

            Person person = new Person();
            person.setFirstName("James");
            person.setLastName("Ryan");
            person.setAge(19);

            outputStream.writeObject(person);

            person = new Person();

            person.setFirstName("Obi-wan");
            person.setLastName("Kenobi");
            person.setAge(30);

            outputStream.writeObject(person);


        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            //Close the ObjectOutputStream
            try {
                if (outputStream != null) {
                    outputStream.flush();
                    outputStream.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }


    public static void main(String[] args) {
        new Main().writePersons("myFile.txt");
    }
}

希望你有明确的想法和示例代码。

谢谢。