問題タブ [eofexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JAVA のストリームで EOFException が発生するのはいつですか
私は DataInputStream を使用しており、EOFExceptions について質問がありました。
Javaドキュメントによると:
入力中にファイルの終わりまたはストリームの終わりに予期せず到達したことを通知します。
この例外は、主にデータ入力ストリームでストリームの終わりを知らせるために使用されます。他の多くの入力操作は、例外をスローするのではなく、ストリームの最後に特別な値を返すことに注意してください。
これは、EOFException が生成されると、ストリームが二度と開かないということですか? それは、これ以上のデータを期待してはならないということですか?
出力ストリームが入力ストリームに接続され、outputstream.close() が呼び出された場合、入力ストリームは EOFException または IOException を受け取りますか?
IOException は次のように記述されます。
何らかの I/O 例外が発生したことを通知します。このクラスは、失敗または中断された I/O 操作によって生成される例外の一般的なクラスです。
出力ストリームを閉じると、datainputstream 側で EOFException または IOException が生成されますか?
java - java - 内部クラスの IO
ObjectOutputStream/ObjectInputStream を内部クラスにすることは可能ですか? OK を書き込んで、作成されたファイルを調べることができますが、ObjectInputStream を使用して読み戻そうとすると、オブジェクト o = oos.readObject(); を読み込もうとしているだけで EOFException が発生します。
- 同じ File オブジェクトを使用して両方のストリームを開くので、それは問題ではありません。
- 内部クラスの性質とは無関係のようです - public int だけを持つクラスは、より複雑なクラスと同じように失敗します。
次に進み、通常のクラスを作成し、送信者クラスでインスタンス化する必要がありますが、可能かどうか、可能でない場合は理由がわからないまま立ち去るのは嫌いです。
更新: 問題の原因となった関連する問題:
A. ObjectOutputStream と追加で書き込まれたファイルを再度開くことはできません。2 番目のヘッダーが書き込まれ、ファイルが破損します。
B. ByteOutputStream を使用してハッシュ ダイジェストを実行するために HashMap をシリアル化することは機能しません。これは、ObjectOutputStream ファイルから HashMap を読み戻すときに、ペアの順序が異なるため、ByteOutputStream から異なる byte[] を取得する可能性が非常に高いためです。内容は同じですが、byte[] (およびハッシュ ダイジェスト) は異なります。
これが誰かの時間を節約するのに役立つことを願っています。
java - objectinputstreamを読み取るときのJavaでのEOF例外
.datファイルに出力した複数のオブジェクト(自分のクラスTerm)を読み取りたいのですが、常にnullPointExceptionまたはEOFExceptionが発生します。
java - SSLSocket からの読み取り中に EOFException を取得する
SSL サーバーに対して単純な要求を行い、応答を待機する SSL クライアントを開発しています。SSL ハンドシェイクと書き込みは正常に行われますが、ソケットからデータを読み取ることができません。java.net.ssl のデバッグをオンにすると、次のようになりました。
[..] は証明書チェーンです。
コード スニペットを次に示します。
複数回書き込むことができ、エラーは発生しませんが、最初の読み取りで EOFException が発生します。
ソケットまたは SSL 認証に問題がありますか?
ありがとうございました。
java - ObjectInputStreamのEOFExceptionは、java(w).exeではなくWebstartでのみ発生しますか?
アプリの起動とWebstart(javaws.exe)の起動の違いに精通している人。ストリームに関してjava.exeまたはjavaw.exeを使用していますか?
これは、Webstartを使用している場合にのみ発生する例外です。
これは私が両側の接続を設定する方法です
[編集]Webstartコンソールによると:Java Web Start1.6.0_19JREバージョン1.6.0_19-b04JavaHotSpot(TM)クライアントVMの使用
サーバーは同じ1.6u19を実行しています
[編集]JNLPに含まれるもの:
ありがとう
java - サーブレットの書き込み中および読み取り中の java.io.EOFException
アプレット側に次のコードがあります。
サーブレット側では、次のようにコードを受け取ります。
アプレット側でコードを呼び出すボタンをクリックすると、次のエラーが表示されます。
このエラーが発生するのはなぜですか? 出力時にフラッシュしましたが、接続も閉じましたが、エラーが発生します。これには何か理由がありますか?
java - JavaのEOFExceptionは例外ですか?
ファイルの終わりに到達したことを示すために例外を使用するのは汚いようです。私たちが読むすべてのファイルには終わりがあるので、例外的または予期しないものではないようです。さらに、プログラムの非例外的なフローに例外を使用するのは好きではありません。
java.io.EOFExceptionを使用してデータ入力ストリームの終了を通知することについて話しています。
次のメッセージで構成されるファイルを想像してください...
...そしてDataInputStreamでこのファイルを読む:
この例では、 への呼び出しによって EOFException がスローされin.readShort()
ます。ファイル内のバイト数を把握し、正確にそのバイト数 (total -= length
ゼロになることによって決定) を読み取り、例外なく while ループを終了する必要がありますか? 私はベストプラクティスを探しています。
私はこのようなことをすべきですか?
API 仕様では、EOFException は、入力中に予期せずファイルの終わりまたはストリームの終わりに到達したことを通知することを指定しています。ただし、データ入力ストリームでもストリームの終わりを知らせるために使用されます。
例外が予想される場合はどうすればよいですか?
java - 私のJavaコードのEOFException
ここにあるstackoverflowの他の投稿ですでに説明されているように、EOFExceptionは、ストリームの終わりに予期せず到達したときに発生します。バイト配列を長い数値に変換するメソッドがあります。このバイト配列は、CのデータベースからJavaバインディングを介して取得したuint64_t番号です。uint64_tと長い数値(符号付きビット)へのキャストの問題を知っています。
これが私の方法です:
このメソッドは時々(!)この例外をスローします:
私が理解していないのは、なぜその例外を取得できるのかということです。バイト配列の長さを自分で指定しませんでしたが、バイト配列をByteArrayInputStreamに渡すだけなので、理論的にはそのような例外は発生しないはずです。
(解決策が明らかにある場合は、私を許してください)
java - Java でシリアル化されたオブジェクトを読み取り中に EOFException を取得する
オブジェクトをシリアル化する 2 つのメソッドがあり、正常に動作します。
ここでの問題は、オブジェクトを逆シリアル化するときに EOFException が発生することです!:
hadoop - Hadoop パイプ プログラムによってスローされる EOFException
まず第一に、私は Hadoop の初心者です。
java.io.EOFException をスローする小さな Hadoop パイプ プログラムがあります。このプログラムは、小さなテキスト ファイルを入力として受け取り、hadoop.pipes.java.recordreader と hadoop.pipes.java.recordwriter を使用します。入力は次のように非常に単純です。
ただし、Hadoop は EOFException をスローしますが、その理由はわかりません。以下はスタック トレースです。
ところで、これを完全分散モード (3 つの作業ノードを持つクラスター) で実行しました。
どんな助けでも大歓迎です!ありがとう