問題タブ [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.

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

java - ObjectOutputStream と writeObject() および reset() メソッドを使用して、2 つのソケット間でオブジェクトの受け渡しを高速化するにはどうすればよいですか?

サーバーを介してオブジェクトをアプリケーションのあるインスタンスから別のインスタンスに (そして非常に迅速に) 渡す必要があるアプリケーション (マルチプレイヤー ゲーム) を作成しています。

これを行うためにソケットを使用ObjectOutputStreamsして取得しています。ObjectInputStreams

ただし、渡されるオブジェクトの状態は常に更新されているため、通常のwriteObject()メソッドではうまくいきません (オブジェクトを 1 回だけ書き込み、その後呼び出されたときにオブジェクトへの参照を渡します。つまり、そのインスタンスの値です)。変数が実際に更新されることはありません)。

これを「修正」するために、 をObjectOutputStream.reset()呼び出すたびにメソッドを呼び出してきましたwriteObject()。これにより、オブジェクトの状態を更新する問題が解決されます。ただし、実行が遅すぎます。これは、「更新」ごとにオブジェクト全体が渡された結果であると思います。

私の質問は、オブジェクトを完全に書き直すことなく、ネットワーク経由で渡しているオブジェクトの状態を更新するにはどうすればよいかということです。(これが私が物事をスピードアップする方法であると仮定しています。間違っている場合、または他の方法が存在する場合は、共有してください)アドバイスをよろしくお願いします!

また、渡されるオブジェクトのサイズに関しては、大きすぎません... 2 つのブール変数、2 つの double 配列、およびその他のマイナー変数 (それぞれ別のリストを含む長さ 1000 のリストはありません)。

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

android - シリアル化されたオブジェクトをファイルとしてsdcardに保存すると、FileNotFoundExceptionが発生します

オブジェクトをシリアル化しsdcardてプロジェクト名で内部に保存したいのですが、取得してFileNotFoundExceptionいます。

私のコードは以下に書かれています:

この問題の理由は何ですか?
私はエミュレーターで実行していて、アプリケーションはandroid3.0です。

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

java - java.lang.Object を別のタイプのオブジェクトに変換する方法は?

を使用して(レジストリ情報を含むオブジェクト: 名前、電話番号など).datの配列を含むファイルをプログラムに書き込むことができますが、ファイルには異なるオブジェクトが含まれているため、この同じファイルの読み取りに問題があります。以前使っていたものから。NodeObjectOutputStreamNode[]

そのうちの1つを作成できれば、私の問題は解決されます。

  • 読み取りObjectをオブジェクト型に変換するNode[]、または
  • ファイルを次のように読み取りますreadNode[]();

これの正式名称がわからないので、答えを見つけるのに苦労しています。

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

java - BufferedOutputStreams の使用時に ObjectInputStream が初期化されない

ゲームのソケットを介してオブジェクトを送信しようとしていますが、送信に時​​間がかかり、ゲームがハングする可能性があります。BufferedOutputStreams と BufferedInputStreams を使用してデータを送信したいのですが、クライアント側で BufferedOutputStream を使用すると、サーバー側で ObjectInputStream が初期化されません。奇妙なことは、エラーがスローされないことです。

関連するコードのみを提供します。そうしないと、何が起こっているのかを説明するのに長い時間がかかるからです。ゲームごとに 2 つのクライアントが初期化されます。

私はすべてのフォーラムを調べてきましたが、うまくいくものを見つけることができませんでした。あなたが与えることができるどんな助けにも感謝します!

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

inputstream - jsch入力ストリームオブジェクト出力ストリームとアンマーシャリング

Java オブジェクトをアンマーシャリングし、それを入力ストリームに変換し、JSCH API を使用して SFTP で転送しようとするシナリオがあります。

基本的に -> 私たちの目標は、jSCH にオブジェクトをファイルに変換せずに INPUTSTREAM の形式でプッシュさせ、次の例のように送信することです。

ただし、最後の行を切り替えて、ファイルに関連付けずにプレーンな古い InputStream を使用する必要があります。

jSCH API によると - FileInputStream を使用しないことは可能です:

これをどのように行うかについてのアイデアはありますか?

ObjectOutputStream を使用できますか? オブジェクトを取得してアンマーシャリングし、中間でファイルを作成せずに入力ストリームにフィードする方法はありますか?

ありがとう

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

java - ファイルがデバイスに書き込まれていない

私は自分の問題を解決するために何百もの異なる方法を試してきましたが、何らかの理由で単純に機能しません。アプリケーションを永続的にするために、すばやく汚い方法を作ろうとしています。基本的に、破棄するときに保存する必要があるオブジェクトがたくさんあるので、オブジェクトをArrayListに入れ、ObjectOutputStreamを使用してArrayListをファイルに書き込むようにすると思いました。

再度読み取るための同様のアルゴリズムを取得しましたが、読み取るファイルがないと文句を言います。永続化のためにファイルを使用することがベスト プラクティスではないことはわかっていますが、これは前述のとおり、迅速で汚い解決策であるはずです。(しかし、私が今使っている時間は、データベースの作成に費やされた可能性があります.._.) ありがとう!

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

java - ディレクトリを作成し、その中にファイルを作成する

「f」という名前のファイルに対して、「out」という出力ストリームライターオブジェクトを作成したいと思います。このファイルを「output」という名前のディレクトリまたはフォルダに作成します。ディレクトリ「output」が存在しない場合はそれを作成し、それがすでに存在する場合はそのディレクトリにファイル「f」を作成する必要があります。

つまり、「出力」という名前のディレクトリが必要であり、プログラムの実行中にさまざまなファイルをそこに入れたいと考えています。

Javaでこれを行う方法を教えてください。現在、次のコードは現在のディレクトリに別のファイルを作成しています。便宜上、すべてのファイルをフォルダーに入れたいと思います。

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

java - ObjectOutputStream 使用時のディスク上のファイルのサイズの見積もり

テーブルからファイルに空間データを書き込もうとしています。しかし、ディスクに書き込む前に、ディスク上のデータの正確なサイズを知る必要があります。例として、次のコードを使用してディスクに書き込んでいるとします。

ディスク上のファイルサイズは次のようになると考えていました:

しかし実際には、これはディスク上の実際のファイル サイズとは大きく異なります。

また、ObjectOutputstream を使用して空のファイルを作成しても、ディスク上に 4B のスペースが発生することにも気付きました。

ディスク上のファイルサイズを計算する方法について何か助けはありますか?

(データをディスクに書き込んで実際のサイズを読み取ることはできません。これによりパフォーマンスが低下します。代わりに、メモリに格納されているデータ値に基づいてディスク上のデータのサイズを計算する必要があります。)

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

java - 毎回 ObjectOutputStream を再作成する必要がある

何人かが同様の質問をするのを見たことがありますが、これまで投稿した唯一の答えは、あなたはそれをする必要はないということです.

しかし、私は両方の方法でテストしましたが、この方法でしか機能しません。

サーバ側

クライアント側

これは一日中機能します。

しかし、これに変更すると-

(コードのさらに上に入力ストリームと出力ストリームを作成しました)

次に、サーバーから初めて正しいデータを正常に受信しましたが、その後は毎回、更新されたデータではなく同じデータを受信し、理由に関するエラーはありません。