[解決済み] Byte[]からInputStreamまたはOutputStreamへの変換
2022-06-25 18:34:56
質問
データベーステーブルにblobカラムがあり、そのカラムに
byte[]
をマッピングとして使用し、このデータを使用するためには、それを
InputStream
または
OutputStream
. しかし、そうすると、内部で何が起こるのかがわかりません。どなたか、この変換を行うときに何が起こっているのか、簡単に説明していただけませんか?
どのように解決するのですか?
バイト配列のI/Oストリームを以下のように作成し、使用します。
byte[] source = ...;
ByteArrayInputStream bis = new ByteArrayInputStream(source);
// read bytes from bis ...
ByteArrayOutputStream bos = new ByteArrayOutputStream();
// write bytes to bos ...
byte[] sink = bos.toByteArray();
標準の
JDBC Blob インターフェース
を実装している JBC ドライバーを使用している場合 (すべてが実装しているわけではありません)、次のことが可能です。
も
を接続します。
InputStream
または
OutputStream
をBLOBに変換するには
getBinaryStream
と
setBinaryStream
メソッド
1
で、直接バイトを取得・設定することもできます。
(一般に、例外を処理するために適切な手段を講じ、ストリームを閉じるべきです。 しかし、閉じる
bis
と
bos
は、ファイル記述子、ソケット、データベース接続などの外部リソースと関連付けられていないため、上記の例では不要です)。
1 - ファイル記述子の
setBinaryStream
メソッドは実際にはゲッターです。 理解しろ。
関連
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
ローカルリソースのロードが許可されていない場合の解決策
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] ストリームからのバイト配列の作成
-
[解決済み] JavaでStringをInputStreamに変換する方法を教えてください。
-
[解決済み] JavaでInputStreamをバイト配列に変換する
-
[解決済み] Javaでバイト配列から16進文字列に変換する方法は?
-
[解決済み] OutputStreamをInputStreamに変換する方法は?
-
[解決済み] Javaでバイト配列を整数に変換する、またはその逆を行う
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
エラー java.util.NoSuchElementException
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
final, finally, finalizeの違いについて話してください。
-
をインスタンス化することができません。
-
Methodのinvokeメソッド実装のJavaリフレクション
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
-
[解決済み] JavaでInputStreamをバイト配列に変換する