- ベストアンサー
出力ストリームをバイト配列へ変換するには
出力ストリームをバイト配列へ変換するには いつもお世話になります。 BufferedOutpuStreamで取得したオブジェクトを(ByteArrayOutputStreamでインスタンス生成)、バイト配列へ変換するにはどのようにすればよいでしょうか。 ByteArrayOutputStreamだと、toByteArrayメソッドでバイト配列へ変換できるのですが、効率化を考慮し、BufferedOutputStreamへ出力するように しているのですが、この場合だと取得したBufferedOutputStreamをバイト配列へ変換する方法が分からず困っています。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 文字のバイトサイズの取得
25バイト以上ある文字配列を25バイトまでに切り取りたいのです。 全て半角英数ならstr.substring(0 ,25)ですみますが 日本語も入っているのでsubstringが使えません。 そこで,バイト配列を使おうと思ったのですがうまくいきません。どうかお願いします。 例) String E = "AAAAAAAAAAAAAあああああああ"; byte S[] = new byte[100]; S=E.getBytes(); ByteArrayOutputStream out = new ByteArrayOutputStream(); for(int n = 0; n < 25 ; ++n){ out.write(S[n]); } System.out.println(out.toByteArray()); 結果として"AAAAAAAAAAAAAあああ"が出力されてほしい
- ベストアンサー
- Java
- OutputStreamの内容を確認するには?
Javaサーブレットでバイナリデータを出力したいと思っています。 デバッグのために出力した内容を、ログに出力したいのですが バッファのデータを取得する方法が見つかりません。 ●現在のソース(抜粋) ---------------------- ServletOutputStream out = response.getOutputStream(); BufferedOutputStream outbuf = new BufferedOutputStream(out); DataOutputStream outdata = new DataOutputStream(outbuf); outdata.writeLong(longValue); outdata.writeInt(intValue); outdata.writeShort(shortValue); outdata.flash(); ---------------------- 一番上が ServletOutputStream out = response.getOutputStream(); ではなく ByteArrayOutputStream out = new ByteArrayOutputStream(); であれば、toByteArray() などで問題なく内容を取得できそう なのですが、それではクライアントに出力できなくなってしまいます。 何かよい方法がありましたら教えていただけないでしょうか?
- 締切済み
- Java
- ByteArrayInputStreamを配列に
ByteArrayInputStreamから読み取ったバイトデータをbyte配列に格納したいのですが,よく分かりません. ByteArrayOutputStreamにはtoBytesメソッドがあるようなのですが・・. 分かる人がいましたらサンプルコードが参考サイトへのURLを教えていただけないでしょうか.
- ベストアンサー
- Java
- ByteArrayOutputStreamでの出力について
以下のソース(抜粋)でこのreturnの箇所で「型の不一致」エラーが出てしまいます。最後にこのクラスのこのメソッドからServletへ値を戻したいのですが。 メソッドのデータ型はbyteですし、Servlet側の受容れる為の変数もbyte型にしています。 経験不足で原因が見つけられません。どなたかご教授をお願い致しますm(__)m Document document = DocumentBuilderFactory.newInstance() .newDocumentBuilder() .getDOMImplementation() .createDocument("", "rt", null); ~文字列からDOMを使ってxmlの生成処理~ Transformer transformer = TransformerFactory.newInstance() .newTransformer(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); transformer.transform(new DOMSource(document),new StreamResult(baos)); byte[] buff = baos.toByteArray(); return buff;
- ベストアンサー
- Java
- 配列のNullPointerException
String[]; s.length; これをコンパイルするとコンパイルエラーになりますが、なぜNullPointerExceptionではないのですか? 通常オブジェクトが生成されていないものに対し、メソッド、フィールドの呼び出しを行うとNullPointerExceptionになるはずなのですが…。 配列のlengthがメソッドでもフィールドでもないという事は聞いたことがありますが、これはいったい何なのですか?
- ベストアンサー
- Java
- 配列のNullPointerException
String[] s; s.length; これをコンパイルするとコンパイルエラーになりますが、なぜNullPointerExceptionではないのですか? 通常オブジェクトが生成されていないものに対し、メソッド、フィールドの呼び出しを行うとNullPointerExceptionになるはずなのですが…。 配列のlengthがメソッドでもフィールドでもないという事は聞いたことがありますが、これはいったい何なのですか?
- 締切済み
- Java
- Javaのコネクションやストリームについて
Javaのコネクションやストリームを別クラスやメソッドに渡したときの、close処理について質問です。 例えば、あるクラスで取得したDBコネクションオブジェクトを、別のクラスやメソッドに渡した場合、close処理はどこで行うのが適切でしょうか? 呼び出し元で行うのが良いのか、呼び出し先で行うのが良いのか、または、両方で行うべきなのか。 どなたかご教授願います。
- ベストアンサー
- Java
- int配列をbyte配列に変換
MIDPアプリを作成している初心者です。 Image データを一旦端末のレコードストアに保存しておく為、 getRGB()で取得したint配列を、byte配列に変換しなくてはいけません。 ↓のように レコードストアに書き込むメソッドを書いてみました。 public void writeRecordStore( String name, Image image ) { int width = image.getWidth(); int height = image.getHeight(); int[] pxData = new int[ width*height ]; byte[] byteData; RecordStore rs = null; try { //画像をバイトデータに変換 image.getRGB( pxData, 0, width, 0, 0, width, height ); //レコードストアを開く rs = RecordStore.openRecordStore( name, true ); //バイト配列に変換 ← ここがわからない //レコードの追加 rs.addRecord( byteData, 0, byteData.length ); } catch( Exception e ) { } } int配列をbyte配列に変換する方法わかる方 ご教授の程お願いします。 また、まだコーディングに自信が無いので、文法のミスもご指摘頂けたらありがたいです。
- ベストアンサー
- Java
- javaで配列の中身を表示する方法
こんばんは。 私は、PHPをやっていたのですが、今度はjavaにチャレンジしてみたいと思っています。 それで、質問です。 PHPでは重宝していたのですが、print_r()メソッドにあたるメソッドはないでしょうか? このメソッドは、配列やオブジェクトの中身を全て出力してくれるメソッドなのですが…。配列の構造が見たいときなどはとても重宝しました。 ex) ■プログラム $arr = array(1, 2, 3, 4, 5); print_r($arr); ■結果: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) ご存知の方いらっしゃいまいしたら、教えてください。
- 締切済み
- Java
- 最終配列にNULLが含まれる場合の対応について
下記のソースで テキスト入出力を行う際でのご質問がございます。 最終配列がNULLの時と 文字がある場合のデータを入出力する際に Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at ExIO3.getValue(テスト.java:53) at ExIO3.main(テスト.java:14) というエラーが表示されます。 最終配列にすべて文字が存在する場合は問題ないのですが こちらはBufferedReaderで 1レコードずつ読み込んでいるソースに問題があるのでしょうか? アドバイスどうぞよろしくお願いします。 import java.io.*; //(1)入出力パッケージのインポート import java.text.Normalizer; class ExIO3 { //mainメソッド public static void main(String[] args) throws IOException { ExIO3 object1 = new ExIO3(); //(1)抜出しメソッドgetValueと、 // ソートメソッドsortValueの呼出 object1.sortValue(object1.getValue()); } //getValueメソッド Reader getValue () throws IOException { //(2)FileReaderオブジェクトcsvの生成 FileReader csv = new FileReader ("C:\\javasample\\テスト\\src\\テストin.txt"); //(3)BufferedReaderクラスでFileReaderクラスの // オブジェクトcsvをラップ BufferedReader in = new BufferedReader(csv); //(4)PipedWriterオブジェクトpipeOutを生成 PipedWriter pipeOut = new PipedWriter(); //(5)PipedReaderオブジェクトpipeInを生成 PipedReader pipeIn = new PipedReader(pipeOut); //(6)PrintWriterクラスでPipedWriterクラスの // オブジェクトpipeOutをラップ PrintWriter out = new PrintWriter("C:\\javasample\\テスト\\src\\テストout.txt"); //************************************************************************************************ //(7)入力テキストデータ //************************************************************************************************ String line; String[] arrayline; Integer sequence_No =0 ; //行のカウンタ //(8)読み込みソースがなくなるまでBufferedReaderで1行ずつ読み込み、 // 読み込みデータをprintlnメソッドで書き込み while((line = in.readLine()) != null) { sequence_No++; //連続番号生成 arrayline = line.split(","); //====================================================== String A= arrayline[0] ; String B = arrayline[1] ; //====================================================== //************************************************************************************************ //(9)出力テキストデータ //************************************************************************************************ 顧客郵便番号_編集(A,out); out.print(","); // ※ 顧客住所_編集(B,out); out.println(""); // ※ out.flush(); } //(10)読み込みストリームのクローズ in.close(); //(11)書き込みストリームのクローズ out.close(); return pipeIn; //(12)pipeInオブジェクトのリターン } //************************************************************************************************ //顧客郵便番号_編集A1 //************************************************************************************************ private void 顧客郵便番号_編集(String a, PrintWriter out) { // TODO 自動生成されたメソッド・スタブ out.print(a.replaceAll(" ","").replaceAll(" ","")); } //************************************************************************************************ //顧客住所_編集B2 //************************************************************************************************ private void 顧客住所_編集(String b, PrintWriter out) { // TODO 自動生成されたメソッド・スタブ out.print(b); } //sortValueメソッド void sortValue(Reader source) throws IOException { } }
- ベストアンサー
- Java