无法使用ObjectInputStream从txt文件中读取值

时间:2017-07-15 04:00:15

标签: java fileinputstream

我是Java的初学者,并尝试学习FileInputStreamFileOutputStream的基础知识。我能够成功地将数据写入文件但无法读取。这是我的代码。如果我遗漏了阅读数据的内容,请你告诉我。

Application.java

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

public class Application {

    public static void main(String[] args) throws FileNotFoundException {
        try(FileOutputStream fs = new FileOutputStream("testdata.txt")){

            ObjectOutputStream os = new ObjectOutputStream(fs);
            MathematicalOperation mo = new MathematicalOperation();

            os.writeObject(mo);
            os.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

ReadingFile.Java

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;

public class ReadDataFromFile {

    public static void main(String[] args) throws FileNotFoundException{
    try(FileInputStream fi = new FileInputStream("testdata.txt")){
        ObjectInputStream oi = new ObjectInputStream(fi);
        MathematicalOperation mo= (MathematicalOperation) oi.readObject();
        System.out.println(mo);
        oi.close();
    } catch (IOException | ClassNotFoundException e) {
        e.printStackTrace();
    }
    }
}

2 个答案:

答案 0 :(得分:0)

如果您正在尝试读取.txt文件的内容,请使用FileInputStream类。

此外,如果你愿意,那将会有很大帮助

答案 1 :(得分:0)

在写入文件“testdata.txt”时,您正在传递MathematicalOperation类的对象,您可以在写入文件(例如mo.setXXX())之前以及从文本文件中读取该对象时设置类成员的值你可以使用MathematicalOperation的返回对象(例如mo.getXXX())获取这些值,在打印对象之前,请覆盖MathematicalOperation类中的toString()方法,以显示该类所有字段的正确值。