2013-02-27 9 views
6

Gibt es irgendeine Möglichkeit mein folgender BufferedReader kann die Eingabe direkt in ein Byte []?BufferedReader direkt auf 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); 
      } 
    ... 

Das ist der Teil des Lesers, bitte sehen Sie sich um.

Ich mag der Eingang direkt an btrar,

Antwort

20

ist es eine Möglichkeit, meine folgenden BufferedReader der Lage ist, die Eingabe direkt in ein byte [] zu setzen?

Jede Reader soll Ihnen Zeichen lesen zu lassen, nicht Bytes. Um Binärdaten zu lesen, verwenden Sie einfach InputStream - mit BufferedInputStream, um es zu puffern, wenn Sie möchten.

Es ist nicht wirklich klar, was Sie zu tun versuchen, aber Sie können wie etwas verwenden:

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... 
} 
+0

so seine falsche Handhabung? – Ekonion

+2

@Ekonion: Ja, mit einem 'Reader', wenn Sie Binärdaten wollen, ist falsch. –

+0

ah ^^ thx, ich werde versuchen: D – Ekonion