問題タブ [objectinputstream]

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.

0 投票する
0 に答える
1302 参照

java - Android での I/O の問題 (主に ObjectInputStream)

ここに投稿するのは初めてなので、お手柔らかに!

omw.data を読み取るメソッドを作成しようとすると、SavedSession オブジェクトがファイルに既に存在するかどうかが確認されます。存在する場合は無視し、それ以外の場合はファイルの末尾に追加します。

オブジェクトを 1 つ追加できます。同じ SavedSession を追加すると、既に追加されていると正しく動作します。別のタイプの SavedSession を追加すると、追加されたと表示されますが、omw.data を読み込もうとするとスローされます

java.io.StreamCorruptedException: 間違った形式: ac

SavedSession は GeoPoint オブジェクトを保持せず、代わりにそれを使用して緯度と経度を取得します。

どんな助けでも感謝します。私は検索を試み、かなりの数の異なる方法を試しましたが、問題が何であるかを正確に理解していませんでした.

ありがとうございます。何か不足している場合はお知らせください。すぐに掲載します。

エラー

編集:これを読んでください

理由がよくわかりませんが、何らかの理由で追加できないことがわかりました。毎回データを書き換えるようにコードを変更しましたが、非常に効率が悪いようです。

0 投票する
1 に答える
385 参照

java - ObjectInputStream を GZIP と組み合わせて使用​​すると、OIS がスレッドをブロックするのはなぜですか?

私は現在、ObjectInputStream がクライアント Socket の入力ストリームに接続されている GZIPInputStream から直接読み取る単純なシステムをセットアップしています。

これに関する問題は、ObjectInputStream がストリーム ヘッダーを読み取ろうとし、スレッドのブロックを開始することです。なぜこれが起こっているのですか?また、どうすればこれを防ぐことができますか?

0 投票する
3 に答える
154 参照

java - オブジェクトを受信する前に Java ネットワーキング コードを実行する

ネットワークを使用する Java ゲームがあり、(Socket を使用して) クライアントが ObjectInputStream からオブジェクトを取得し、独自のスレッドで実行しています。

Client.javaから:

これはかなりうまくいきます。オブジェクトが取得され、メインの GameApp クラスにリンクされたクラスであるリスナーに渡されます。

リスナーから ( NetControl.java ):

「app」は、受信したすべての新しいオブジェクトを処理して処理するインスタンスです。

アプリ ( GameApp.java ) から (編集: 非抽象CardGameApp.javaはより大きなコンテキストを提供します):

このコードをデバッガーで 1 ステップずつ実行したところ、完全に動作しました。ただし、通常どおり実行すると、null ポインターが返されます (出力は次のとおりです:)

ここで、オブジェクトが 2 回印刷されているのがわかるので、受信したことはわかりますが、null ポインターが返されます。

関数の途中にスリープ関数を追加しました。

そして、しばらくスリープ状態にすると、ようやくすべてが機能しました。

このようにスレッドをスリープ状態にする必要がある理由は何ですか? 何か違うことをしなければならないことはありますか?オブジェクトがまだnullと見なされているときにオブジェクトを印刷できた理由がわかりません。

編集:さらにコンテキストを追加しました。

0 投票する
1 に答える
131 参照

java - シリアル化可能な実装で絶対最小量のデータをシリアル化するにはどうすればよいですか?

私は初めてですJava.io.Serializableので、これがまったく新しい質問である場合はお詫び申し上げます。私がやりたいのは、最小限のデータがシリアル化されるようreadObject()に実装することです。writeObject()私のアプリケーションでは、このオブジェクトを逆シリアル化するときにすべての情報を知っているので、基本的には、いくつかのプリミティブのみを記述し、オブジェクトIDに関する情報やオブジェクトグラフに関する情報は記述しません。これが理にかなっていることを願っています!私はこれにまったく慣れておらず、ここで正しい語彙を持っていない可能性があるため、質問の高レベルの性質についてお詫びします。

0 投票する
3 に答える
1059 参照

java - ObjectInputStream を使用した Android ClassNotFoundException

サーバー アプリから Android クライアントにオブジェクトを送信しようとしています。ClassNotFoundException: CardGame の原因となっているクラスを含め、すべてのクラスは同じパッケージ内にあり、Eclipse の src フォルダーにあります。私はAndroidが初めてで、Javaはかなり初めてで、これに数日間立ち往生しているので、誰かが問題を理解するのを手伝ってくれるかどうか疑問に思っています...

これが問題の原因となっているコードです...

ここにスタックトレースがあります...

ありがとうございました!

0 投票する
1 に答える
3138 参照

java - Java - array-list を使用したバイナリ ファイル I/O

私は Java の初心者で、バイナリ ファイルの入力と配列リストの出力に問題があります。配列リストのデータをファイルに保存し、それを使用してコンソールに表示しようとしています。これが私のコードの一部です。実行されますが、間違った情報が表示され、警告も表示されます。この問題の原因について何か助けはありますか? ありがとう!

出力ファイルをコンソールに表示します。

次のように表示されます。

しかし、私はこれを得ています:

0 投票する
3 に答える
695 参照

java - コードが新しいファイルを作成しないのはなぜですか?

これは私が書いたばかりのクラスです。以前は、実際には別のアプリケーションでファイルを作成していました。しかし、どういうわけかそれは機能していません。新しいファイルを作成しておらず、次のエラーが発生します。

エラー:

問題はどこだ?

0 投票する
1 に答える
1645 参照

java - クライアント - サーバー ObjectInputStream エラー

私のコードはこれです

Gumoku_Graphics() 内で、ゲームサーバーとの接続を実行するこのクラスを呼び出します

これは

そして、「input = new ObjectInputStream(socket.getInputStream());」で停止するたびに これを行うことができず、そこで立ち往生しました。「socket ok」、「out ok」と表示され、そこにスタックします。どうしたの?私は何を間違っていますか?

0 投票する
2 に答える
1093 参照

java - ObjectInputStream.readObject()のClassNotFoundException

クライアントアプリケーションから渡されたオブジェクトを、サーバーアプリケーションの同じクラスのオブジェクトにキャストしようとしています。

サーバーアプリケーションで現在受信しているエラーは次のとおりです。

オブジェクトは、Socket->ObjectInputStreamを介してサーバーによって受信されています。

だから私はあなたたちが私がclient.Userクラスを私のServer.Userクラスにキャストするのを手伝ってくれるかどうか疑問に思っていました。唯一機能するのは、パッケージを1つのプロジェクト内に配置してから、クラスの正確な場所を定義することです。

コードはいつでも提供できます。

0 投票する
4 に答える
14785 参照

java - ストリームからオブジェクトを読み取るときのJavaClassNotFoundException

ObjectInputStreamからオブジェクトを読み取るときにClassNotFoundExceptionが発生します。送信されているオブジェクトは、読み取りコードが参照している「WorkUnit」をサブクラス化しています。受信側は特定の実装について知らないため、不平を言っているように見えます。オブジェクトのスーパークラス、つまり受信側の「WorkUnit」のみを参照しているのに、なぜそれを気にするのでしょうか。

ストリームから読み取るコード:

ワークユニットの実装:

ワークユニットを送信するコード:

例外トレース:

[NetworkHandler]エラー:オブジェクトを正しく読み取ることができませんでした