問題タブ [objectoutputstream]
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 - 同じだが変更されたオブジェクトを ObjectOutputStream 経由で送信する
私の側のバグまたは誤解を示す次のコードがあります。
同じリストを送信しましたが、ObjectOutputStream を変更しました。1 回は [0]、それ以外は [1] です。しかし、読んでみると [0] が 2 回出てしまいます。これは、同じオブジェクトを送信していて、ObjectOutputStream が何らかの方法でそれらをキャッシュしている必要があるという事実が原因だと思います。
これは正常に機能しますか、それともバグを報告する必要がありますか?
java - オブジェクト(出力|入力)ストリーム バイナリ プロトコル
で使用されるバイナリ プロトコルについて説明しているリソースがあるかどうか疑問に思っていましたObjectOutputStream
。もちろん、オブジェクト自体がインターフェイスを実装することでそのデータを指定できることは理解していExternalizable
ます。そのため、オブジェクト グラフの構造、つまりメタデータをより重視していると思います。
レガシー Java プログラムと対話する必要がある C プログラムを作成しています。ObjectOutputStream
これらの要件のいずれも変更する方法がないため、プロトコルのリバース エンジニアリングを行っています。(転送に HTTP を使用し、HTTP 応答として Object*Stream を返すサーバーがあります。)
しかし、私はそこにいる他の誰かが以前にこの仕事をしなければならなかったように感じます. 作業をスピードアップするためのリソースを教えてください。
asp.net - XMLWrite 出力を httpContext.Response.OutputStream に送信するときの NullReferenceException
ときどき奇妙なエラーが発生するアプリケーションがあります。これはコードの一部です:
私が得ているエラーは次のとおりです: メッセージ: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
オンライン XMLWriter.Flush();
物事をより楽しくするために、これは絶対に再現できません。それはちょうど時々起こります....
XMLをフラッシュするときに起こっているので、現在nullになっているオブジェクトはResponse.OutputStreamでなければならないと推測しています。
これは、スタック トレースの関連部分です。
私の質問は、これがどのような場合に発生する可能性があるかということです。このサーバーはロング ポーリング サーバーであるため、クライアントが何かを要求しますが、30 秒間応答しない場合があります... クライアントが切断した場合 (つまり、ブラウザー ウィンドウを閉じた場合)、このストリームが Null になる可能性はありますか?
他のアイデアはありますか?(任意のポインタをいただければ幸いです)
java - ObjectInputStream エラー
ObjectOutputStream を使用して、シリアル化されたオブジェクトのファイルを作成しています。次に、ObjectInputStream を readObject() メソッドで使用して、ファイルからオブジェクトを取得します。
初めてでもうまくいきます。つまり、ファイルが存在せず、それを開いて任意の数のオブジェクトを追加すると、ObjectInputStream オブジェクトを開いてすべてのオブジェクトにアクセスできます。
ただし、後で同じファイルを (append オプションを使用して) 開き、さらにオブジェクトを追加すると、ObjectInputStream オブジェクトは java.io.StreamCorruptedException: "invalid type code: AC" エラーを受け取り、新しいオブジェクトを開始する必要があります。
他の誰かがこれに遭遇しましたか?Deitel の本からいくつかの基本的な教科書の例に戻っても、同じエラーが発生します。
編集:これを見つけました-シリアル化されたストリームを閉じて追加モードで再度開いた後は、その末尾に追加することはできません。書き込みは機能しているように見えますが、後でファイルを読み取ろうとすると、java.io.StreamCorruptedException が発生します。「http://mindprod.com/jgloss/gotchas.html#SERIALIZATION」で
java - OutputStream ファイルの内容を削除する JAVA
シリアル化されたオブジェクトを記録する必要があるファイルがあります。ObjectOutputStream
ファイルに書き込むために開きます。ファイルに何も書き込まなかった場合、ファイルの内容は削除されます。作成時にコンテンツを削除したくありませんObjectOutputStream
。
私のコード(私はGuiceを使用しています)、
java - ObjectOutputStream.writeStreamHeader() をオーバーライドするには?
メソッドObjectOutputStream.writeStreamHeader()
をオーバーライドして、データをヘッダーの先頭または末尾に追加できます。ただし、そのデータが次のような派生クラスのコンストラクターに渡される引数に基づいている場合:
が初期化されて呼び出さsuper()
れる前に呼び出されるため、機能しません。これを回避する唯一の方法は、次のように使用することです。m_myData
super()
writeStreamHeader()
ThreadLocal
これは機能しているように見えますが、より良い (不格好でない) 方法はありますか?
java - ObjectOutputStream への追加
に追加することはできませんObjectOutputStream
か?
オブジェクトのリストに追加しようとしています。次のスニペットは、ジョブが終了するたびに呼び出される関数です。
しかし、それを読み取ろうとすると、ファイルの最初のものしか取得できません。それから私は得るjava.io.StreamCorruptedException
。
私が使用していることを読むために
オブジェクトがいくつ存在するか分からないので、例外がないうちに読んでいます。Googleが言っていることから、これは不可能です。誰かが方法を知っているかどうか疑問に思っていましたか?
java - Java:シリアル化せずにObjectOutputStreamを使用する
ObjectOutputStream
時々、ファイルに何かを書き込んだり、ネットワーク経由で小さな画像を送信したりするためにを使用したいことがあります。しかしBufferedImage
、他の多くのクラスは実装せずjava.io.Serializable
、Streamは書き込みをキャンセルします。それを回避する方法はありますか?
ありがとう、Martijn
java - JavaでBitSetをファイルに書き込む
私は BitSet を持っていて、それをファイルに書きたいと思っています - writeObject メソッドを使用して ObjectOutputStream を使用する解決策を見つけました。
Java API の ObjectOutputStream を調べたところ、他のもの (byte、int、short など) を記述できることがわかりました。
クラスをチェックアウトしようとしたので、次のコードを使用してファイルにバイトを書き込もうとしましたが、結果は1バイトではなく7バイトのファイルになります
私の質問は、ファイルの最初の 6 バイトは何ですか? なぜ彼らはそこにいるのですか?
ファイルに大量のデータを書き始めたくないので、私の質問は BitSet に関連しています。
コードは次のとおりです。
助けてくれてありがとう
アヴナー
java - Java: Serializable 問題のある ObjectOutputStream
私はこれらの3つのクラスを持っています:
指示:
クライアント:
MyKeyListener:
このキーリスナーは、JFrame のコンポーネントに追加されます。
問題は、私がコードを実行し、彼がコマンドを送信したい場合です。「MyKeyListenerはSerializableではない」ため、ストリームは書き込みを停止します???!! しかし、私は決して送信しようとしませんMyKeyListener