問題タブ [bytearrayoutputstream]
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.
android - ByteArrayOutputStream への文字列の書き込み中に OutOfMemoryError が発生する
私は、後でZipOutputStreamに書き込むByteArrayOutputStreamに書き込む必要があるStringオブジェクトの配列を持つメソッドを持っています。
これが私のコードです。
問題は、クラッシュ レポートを受け取っただけで、次のようなOutOfMemoryError
メッセージが表示されることです。byteOut.write(s.getBytes("UTF-8"));
これを行うためのより良い方法を知っている人、または私が何か間違っているかどうかを確認できる人はいますか?
考え
問題の周りに try catch ステートメントを配置し、それが発生したときに call できbyteOut.flush()
ますか?
前もって感謝します
java - writeObject(null) の後に 0 バイトを期待していたのに、代わりに 5 バイトが見つかりました。何が起こっているのでしょうか?
オブジェクトを ByteArrayOutputStream に書き込んでいるときに、奇妙な結果が得られます。
したがって、ByteArrayOutputStream に null を書き込み、0 バイトを見つける代わりにこのストリームからバイトを取得すると、5 であることがわかります。バイトの値は次のとおりです。
- [0] => -84
- [1] => -19
- [2] => 0
- [3] => 5
- [4] => 112
を に変更するos.writeObject(null)
とos.writeObject("A")
、8 バイトになり、これらは -
- [0] => -84
- [1] => -19
- [2] => 0
- [3] => 5
- [4] => 116
- [5] => 0
- [6] => 65
- [7] => 8
ここで何が起こっているのか、0バイトを書き込むと、バイト配列を取得するときにバイトが見つかると予想されます。そして、さらに 5 バイトが追加されていることがわかります。したがって、「A」と書くと、バイト配列で 6 バイトが返されるはずですが、8 が返されます。ここで何が起こっているのでしょうか。
java - 大きな ByteArrayOutputSteam からの Avro デシリアライゼーションについて
ByteArrayOutputStream
aの内容はすべてメモリに保存されるため、 a はメモリ効率が悪い という印象を受けます。
同様に、大きなストリームを呼び出すtoByteArray
と、「スケーリングが不十分」のように見えます。
では、Tom White の著書Hadoop の例: Definitive Guideの例では、両方を使用しています。
「ビッグデータ」は Avro の標準ではありませんか? 私は何が欠けていますか?
編集 1: 私がやろうとしていること- ウェブソケット経由で avros をストリーミングしているとします。独自の 1 つのレコードだけでなく、複数のレコードを逆シリアル化したい場合、例はどのようになりByteArrayOutoputStream
ますか?
BinaryDecoder
byte[]を提供するより良い方法はありますか? それとも、別の種類のストリームでしょうか? または、ストリームに複数のレコードをロードする代わりに、ストリームごとに 1 つのレコードを送信する必要がありますか?
java - ByteArrayOutputStream を BufferedImage に変換する
を使用して作成した ByteArrayOutputStream があり、それをオブジェクトに変換して、Android の ImageView に表示しQRGen Qr code generation library
たいと考えています。BufferedImage
それはどのように達成できますか。
java - OutOfMemoryErrorをスローするByteArrayOutputStream
次のコードを使用して画像のバイト配列を読み取ろうとしていますが、メモリ不足の例外がスローされます。例外が発生する場所についてコメントしました。
java - ByteArrayInputStream から FileInputStream へ
私は Java の経験があまりなく、ByteArrayInputStream
オブジェクトをオブジェクトに変換するのに問題がありFileInputStream
ます。
それを行う方法はありますか?
ファイル URL を受け取ってこの関数に渡すコードを書きましたrenderer.setDocument(url);
これが私のコードです:
しかし、今はハードディスクに何も書きたくないのでByteArrayInputStream
、テキストを含むファイルを now と交換し、ファイル URL を渡す代わりに、これを ITextRenderer に渡したいと思います。
それを行う方法はありますか?
java - Android アプリケーションで ByteArrayOutputStream を閉じる
Android アプリケーションでは、から撮った写真を送信しているので、a をバイト配列Camera Intent
に変換する必要があります。Bitmap
これを行うには、次のように使用ByteArrayOutputStream
します。
すべてが正常に動作し、実際の問題は、ByteArrayOutputStream
javadoc と Android のドキュメントのドキュメントの違いです。
Javadocの読み取り
ByteArrayOutputStream を閉じても効果はありません。
Androidのドキュメントには次のように書かれています:
このストリームを閉じます。これにより、このストリームに使用されているシステム リソースが解放されます。
何があってもストリームを閉じますが、どのドキュメントが正しいのか、なぜ異なるのかを知りたいです。
pdf - 入力データを含む動的にマップされたjspページからサーブレットを介してpdfを生成するiText
私はバイト配列出力ストリームを使用してpdfを生成しましたが、入力はjspページとWebベースのデータのマッピングであり、このマップされたドキュメントはpdfを生成するために使用されます
ここで document.add() で使用される webdoc は、jsp からのマッピングされたデータといくつかのデータ入力の出力ですが、代わりに pdf に続くページが表示されます
%PDF-1.4 %2 0 obj <>ストリーム x@<ńĤpٶB>SAa]"1zo&"k0;(\px̃e#z,G%SQS^]P/@h |\" Ȉ[`JJrf6$m}M Ʉ :+t$j- y HBt: uRŞ{bz{yK 3CZ"Uy2i>>/MediaBox[0 0 595 842]>> endobj 1 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj xref 0 70000000000 65535 f 0000000555500000 N 0000000015 00000 N 0000000643 00000 N 0000000398 00000 N 0000000706 00000 N 0000000751 00000 NARTINER <17152061A FAMF54517FACHF6FADCHMADCHAMF6CESFAMF517417171717171171171171171171171171111111111111111111111111111111111年ぶりに
私のweb.xmlにもサーブレットマッピングがありますが、生成されたpdfが動的になるため、urlパターンに疑問があるため、url-patternセクションに/servlet/servlet_nameがあります。
*.pdf を使用しても役に立ちませんでした。
java - エラーメッセージをキャプチャしてコンソール (IDE) に表示する
Java プログラムの Processbuilder を使用して、バックグラウンド プロセスとして C++ プログラム (makefile) を実行しています。.getInputStream を使用して cmd プロンプトに表示される値をキャプチャし、コンソール (IDE) に表示しています。
これはうまくいきます。C++ ファイルの 1 つで何らかのエラーが発生し、makefile を実行しようとすると、エラー メッセージがキャプチャされないとします。「cmd.exe」、「start」を使用すると、cmdプロンプトでエラーを表示できますが、コンソール(IDE)には表示されません。
エラーメッセージを表示するにはどうすればよいか教えてください。
1) System.err と printstream がこれに対する解決策になる可能性がありますか? もしよろしければ、サンプルコードを見せてください。前もって感謝します