2013-02-27 126 views
6

क्या कोई संभावना है कि मेरा निम्नलिखित BufferedReader इनपुट को सीधे बाइट [] में डाल सकता है?BufferedReader सीधे बाइट []

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); 
      } 
    ... 

पाठक का हिस्सा है, कृपया एक नज़र डालें।

मैं इनपुट सीधे btrar करना चाहते हैं,

उत्तर

20

वहाँ किसी भी संभावना को मेरी निम्नलिखित BufferedReader इनपुट एक बाइट [] में सीधे डाल करने में सक्षम है?

किसी भी Reader आप पात्रों, बाइट्स नहीं पढ़ जाने के लिए बनाया गया है। द्विआधारी डेटा को पढ़ने के लिए, यदि आप चाहें तो बफर करने के लिए BufferedInputStream का उपयोग करके InputStream का उपयोग करें।

यह नहीं वास्तव में स्पष्ट तुम क्या करने की कोशिश कर रहे हैं क्या है, लेकिन आप की तरह कुछ का उपयोग कर सकते हैं:

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

अपनी गलत हैंडलिंग? – Ekonion

+2

@ इकोनियन: हाँ, जब आप बाइनरी डेटा चाहते हैं तो 'रीडर' का उपयोग करना गलत है। –

+0

आह ^^ thx, मैं कोशिश करूंगा: डी – Ekonion