問題タブ [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 と writeObject() および reset() メソッドを使用して、2 つのソケット間でオブジェクトの受け渡しを高速化するにはどうすればよいですか?
サーバーを介してオブジェクトをアプリケーションのあるインスタンスから別のインスタンスに (そして非常に迅速に) 渡す必要があるアプリケーション (マルチプレイヤー ゲーム) を作成しています。
これを行うためにソケットを使用ObjectOutputStreams
して取得しています。ObjectInputStreams
ただし、渡されるオブジェクトの状態は常に更新されているため、通常のwriteObject()
メソッドではうまくいきません (オブジェクトを 1 回だけ書き込み、その後呼び出されたときにオブジェクトへの参照を渡します。つまり、そのインスタンスの値です)。変数が実際に更新されることはありません)。
これを「修正」するために、 をObjectOutputStream.reset()
呼び出すたびにメソッドを呼び出してきましたwriteObject()
。これにより、オブジェクトの状態を更新する問題が解決されます。ただし、実行が遅すぎます。これは、「更新」ごとにオブジェクト全体が渡された結果であると思います。
私の質問は、オブジェクトを完全に書き直すことなく、ネットワーク経由で渡しているオブジェクトの状態を更新するにはどうすればよいかということです。(これが私が物事をスピードアップする方法であると仮定しています。間違っている場合、または他の方法が存在する場合は、共有してください)アドバイスをよろしくお願いします!
また、渡されるオブジェクトのサイズに関しては、大きすぎません... 2 つのブール変数、2 つの double 配列、およびその他のマイナー変数 (それぞれ別のリストを含む長さ 1000 のリストはありません)。
android - シリアル化されたオブジェクトをファイルとしてsdcardに保存すると、FileNotFoundExceptionが発生します
オブジェクトをシリアル化しsdcard
てプロジェクト名で内部に保存したいのですが、取得してFileNotFoundException
います。
私のコードは以下に書かれています:
この問題の理由は何ですか?
私はエミュレーターで実行していて、アプリケーションはandroid3.0です。
java - java.lang.Object を別のタイプのオブジェクトに変換する方法は?
を使用して(レジストリ情報を含むオブジェクト: 名前、電話番号など).dat
の配列を含むファイルをプログラムに書き込むことができますが、ファイルには異なるオブジェクトが含まれているため、この同じファイルの読み取りに問題があります。以前使っていたものから。Node
ObjectOutputStream
Node[]
そのうちの1つを作成できれば、私の問題は解決されます。
- 読み取り
Object
をオブジェクト型に変換するNode[]
、または - ファイルを次のように読み取ります
readNode[]();
これの正式名称がわからないので、答えを見つけるのに苦労しています。
java - BufferedOutputStreams の使用時に ObjectInputStream が初期化されない
ゲームのソケットを介してオブジェクトを送信しようとしていますが、送信に時間がかかり、ゲームがハングする可能性があります。BufferedOutputStreams と BufferedInputStreams を使用してデータを送信したいのですが、クライアント側で BufferedOutputStream を使用すると、サーバー側で ObjectInputStream が初期化されません。奇妙なことは、エラーがスローされないことです。
関連するコードのみを提供します。そうしないと、何が起こっているのかを説明するのに長い時間がかかるからです。ゲームごとに 2 つのクライアントが初期化されます。
私はすべてのフォーラムを調べてきましたが、うまくいくものを見つけることができませんでした。あなたが与えることができるどんな助けにも感謝します!
inputstream - jsch入力ストリームオブジェクト出力ストリームとアンマーシャリング
Java オブジェクトをアンマーシャリングし、それを入力ストリームに変換し、JSCH API を使用して SFTP で転送しようとするシナリオがあります。
基本的に -> 私たちの目標は、jSCH にオブジェクトをファイルに変換せずに INPUTSTREAM の形式でプッシュさせ、次の例のように送信することです。
ただし、最後の行を切り替えて、ファイルに関連付けずにプレーンな古い InputStream を使用する必要があります。
jSCH API によると - FileInputStream を使用しないことは可能です:
これをどのように行うかについてのアイデアはありますか?
ObjectOutputStream を使用できますか? オブジェクトを取得してアンマーシャリングし、中間でファイルを作成せずに入力ストリームにフィードする方法はありますか?
ありがとう
java - ファイルがデバイスに書き込まれていない
私は自分の問題を解決するために何百もの異なる方法を試してきましたが、何らかの理由で単純に機能しません。アプリケーションを永続的にするために、すばやく汚い方法を作ろうとしています。基本的に、破棄するときに保存する必要があるオブジェクトがたくさんあるので、オブジェクトをArrayListに入れ、ObjectOutputStreamを使用してArrayListをファイルに書き込むようにすると思いました。
再度読み取るための同様のアルゴリズムを取得しましたが、読み取るファイルがないと文句を言います。永続化のためにファイルを使用することがベスト プラクティスではないことはわかっていますが、これは前述のとおり、迅速で汚い解決策であるはずです。(しかし、私が今使っている時間は、データベースの作成に費やされた可能性があります.._.) ありがとう!
java - ディレクトリを作成し、その中にファイルを作成する
「f」という名前のファイルに対して、「out」という出力ストリームライターオブジェクトを作成したいと思います。このファイルを「output」という名前のディレクトリまたはフォルダに作成します。ディレクトリ「output」が存在しない場合はそれを作成し、それがすでに存在する場合はそのディレクトリにファイル「f」を作成する必要があります。
つまり、「出力」という名前のディレクトリが必要であり、プログラムの実行中にさまざまなファイルをそこに入れたいと考えています。
Javaでこれを行う方法を教えてください。現在、次のコードは現在のディレクトリに別のファイルを作成しています。便宜上、すべてのファイルをフォルダーに入れたいと思います。
java - ObjectOutputStream 使用時のディスク上のファイルのサイズの見積もり
テーブルからファイルに空間データを書き込もうとしています。しかし、ディスクに書き込む前に、ディスク上のデータの正確なサイズを知る必要があります。例として、次のコードを使用してディスクに書き込んでいるとします。
ディスク上のファイルサイズは次のようになると考えていました:
しかし実際には、これはディスク上の実際のファイル サイズとは大きく異なります。
また、ObjectOutputstream を使用して空のファイルを作成しても、ディスク上に 4B のスペースが発生することにも気付きました。
ディスク上のファイルサイズを計算する方法について何か助けはありますか?
(データをディスクに書き込んで実際のサイズを読み取ることはできません。これによりパフォーマンスが低下します。代わりに、メモリに格納されているデータ値に基づいてディスク上のデータのサイズを計算する必要があります。)
java - 毎回 ObjectOutputStream を再作成する必要がある
何人かが同様の質問をするのを見たことがありますが、これまで投稿した唯一の答えは、あなたはそれをする必要はないということです.
しかし、私は両方の方法でテストしましたが、この方法でしか機能しません。
サーバ側
クライアント側
これは一日中機能します。
しかし、これに変更すると-
(コードのさらに上に入力ストリームと出力ストリームを作成しました)
次に、サーバーから初めて正しいデータを正常に受信しましたが、その後は毎回、更新されたデータではなく同じデータを受信し、理由に関するエラーはありません。