我必须使用这些类读入一个文件。我真的不太明白它们是如何工作的。
FileInputStream inFile = new FileInputStream(fileName);
ObjectInputStream inStream = new ObjectInputStream(inFile);
car = (Car)inStream.readObject();如果car是一个类,那么正在读取的到底是什么?我对此很困惑。
car是类Car的一个实例
谢谢
发布于 2011-01-17 09:00:28
在最基本的级别上,您正在从文件中读取位,这是FileInputStream能够做到的。然后通过ObjectInputStream将这些位转换为Java对象,但不知道创建的对象的实际类型,这就是为什么必须将对象转换为汽车(希望在try/catch块中,以防出现错误)。
有关Streams的更多信息,请查看此处:input Streams
对于文件输入流,请查看此处:byte streams
对于对象流,请查看此处:Object streams
发布于 2011-01-17 09:55:23
您的代码,请尝试反序列化已保存到文件流的对象。
当您的虚拟机关闭时,您的对象实例将消失。序列化是一种将对象保存到持久化存储(文件、数据库)的方法,因此该对象可以在您的虚拟机生命周期之后使用。如果您再次需要该对象,只需将数据流反序列化为对象。
有关序列化的详细信息,请参阅此链接:
http://java.sun.com/developer/technicalArticles/Programming/serialization/
发布于 2014-09-12 20:43:14
FileInputStream:
FileInputStream用于打开要读取的文件。
FileInputStream fis=new FileInputStream("welcome");它检查文件是否存在,如果文件存在,则打开文件进行读取,否则将抛出FileNotFoundException。
ObjectInputStream:
FileInputStream fis=new FileInputStream("welcome");
ObjectInputStream ois=new ObjectInputStream(fis);它打开文件以读取对象。
https://stackoverflow.com/questions/4709151
复制相似问题