web-dev-qa-db-ja.com

BufferedReaderを直接byte []に

次のBufferedReaderが入力を直接byte []に​​入れることができる可能性はありますか?

public static Runnable reader() throws IOException {
    Log.e("Communication", "reader");
    din = new DataInputStream(sock.getInputStream());
    brdr = new BufferedReader(new InputStreamReader(din), 300);
    boolean done = false;
    while (!done) {
       try {
       char[] buffer = new char[200];
           int length = brdr.read(buffer, 0, 200);
           String message = new String(buffer, 0, length);
           btrar = message.getBytes("ISO-8859-1");                      
           int i=0;
           for (int counter = 0; counter < message.length(); counter++) {
              i++;  
              System.out.println(btrar[counter] + " = " + " btrar "  + i);
           }
    ...

それは読者の一部です、plsは一見を持っています。

Btrarに直接入力したいのですが、

7
Ekonion

次のBufferedReaderが入力を直接byte []に​​入れることができる可能性はありますか?

Readerは、バイトではなく文字を読み取れるように設計されています。バイナリデータを読み取るには、InputStreamを使用します。必要に応じてBufferedInputStreamを使用してバッファリングします。

何をしようとしているのかは明確ではありませんが、次のようなものを使用できます。

BufferedInputStream input = new BufferedInputStream(sock.getInputStream());
while (!done) {
    // TODO: Rename btrar to something more meaningful
    int bytesRead = input.read(btrar);
    // Do something with the data...
}
24
Jon Skeet