2011-01-17 5 views
3

これらのクラスを使用してファイルを読み込む必要があります。 どのように動作するのか分かりません。FileInputStreamとObjectInputStream

FileInputStream inFile = new FileInputStream(fileName); 
ObjectInputStream inStream = new ObjectInputStream(inFile); 
car = (Car)inStream.readObject(); 

車がクラスの場合、正確には何が読み取られていますか? これについて私はとても混乱しています。

車は最も原始的なレベルでは

おかげ

答えて

1

クラスの車のインスタンスである、あなたはFileInputStreamのは行うことができているファイルからのビットを読んでいます。これは、これらのビットをJavaオブジェクトに変換するObjectInputStreamでフィルタリングされますが、作成されるオブジェクトの実際の型がわからないため、オブジェクトをCarとしてキャストする必要があります(うまくいけばtry/catchブロックエラー)。一般的にストリームの詳細について

、こちらをご覧ください:ファイル入力ストリームにinput Streams
、こちらをご覧ください:オブジェクトのストリームにbyte streams
、こちらをご覧ください:Object streams

+0

ええ、try catchブロックで取得しました。私は今、それを取得しているので、プログラムはオブジェクトが何であるかを理解し、それらを読み込む方法でそのファイルに保存します!ニース! – sark9012

+0

あなたはそれのための感じを得てうれしい!頑張ってください! –

+0

私はちょうどそれの周りに私の頭を得ることができませんでした。私は何が救われているのか理解しようとここに座っていた。 .datファイルになりますか? – sark9012

0

あなたのコード、デシリアライズしてみてくださいファイルストリームに保存されたオブジェクト。

仮想マシンがダウンすると、オブジェクトのインスタンスが消滅します。直列化は、オブジェクトを永続ストレージ(ファイル、データベース)に保存する方法であるため、オブジェクトは仮想マシンの寿命を超えて後で使用できます。再度オブジェクトが必要な場合は、データストリームをオブジェクトに逆シリアル化してください。シリアル化の詳細については、

、このリンクを参照してください。

http://java.sun.com/developer/technicalArticles/Programming/serialization/

0

のFileInputStream:
のFileInputStreamを読み取るために、ファイルを開くために使用されます。ファイルが存在しないか、ファイルが存在する場合はそれ以外にFileNotFoundExceptionがスローされます を読み取るためのファイルを開くwheither

FileInputStream fis=new FileInputStream("welcome"); 

それはチェックします。

のObjectInputStream:それはオブジェクトを読み取るためのファイルを開く

FileInputStream fis=new FileInputStream("welcome"); 
ObjectInputStream ois=new ObjectInputStream(fis); 

関連する問題