2011-10-14 14 views
10

में रीड() द्वारा लौटा गया चरित्र प्राप्त करना read() द्वारा BufferedReader में वास्तविक वर्ण मान में लौटाए गए पूर्णांक को कैसे परिवर्तित कर सकता है और फिर इसे स्ट्रिंग में जोड़ सकता है? read() पूर्णांक देता है जो चरित्र को पढ़ने का प्रतिनिधित्व करता है। जब मैं ऐसा करता हूं, यह वास्तविक चरित्र को स्ट्रिंग में शामिल नहीं करता है। इसके बजाए, यह स्ट्रिंग में पूर्णांक प्रतिनिधित्व स्वयं को जोड़ता है।BufferedReader

int c; 
String result = ""; 

while ((c = bufferedReader.read()) != -1) { 
    //Since c is an integer, how can I get the value read by incoming.read() from here? 
    response += c; //This appends the integer read from incoming.read() to the String. I wanted the character read, not the integer representation 
} 

वास्तविक डेटा पढ़ने के लिए मुझे क्या करना चाहिए?

उत्तर

18

बस c को char पर डालें।

इसके अलावा, किसी भी लूप में String पर कभी भी += का उपयोग न करें। यह ओ (एन^2) की अपेक्षा ओ (एन^2) है। इसके बजाय StringBuilder या StringBuffer का उपयोग करें।

int c; 
StringBuilder response= new StringBuilder(); 

while ((c = bufferedReader.read()) != -1) { 
    //Since c is an integer, cast it to a char. If it isn't -1, it will be in the correct range of char. 
    response.append((char)c) ; 
} 
String result = response.toString(); 
+0

धन्यवाद तुलना में अधिक कुशल हो जाएगा! – Fattie

+1

@JoeBlow इस तरह की टिप्पणी के लिए धन्यवाद। आपके संपादन के बारे में, मुझे लगता है कि पाठक को बंद करने वाला व्यक्ति जिम्मेदार है जिसने पाठक बनाया है। क्योंकि हम पाठक के निर्माण को नहीं देखते हैं, इसे बंद करना उचित नहीं है, और उत्तर के दायरे से परे .. – ILMTitan

3

एक चार पहले करने के लिए कास्ट यह:

response += (char) c; 

भी (अपने प्रश्न से संबंधित नहीं), कि विशेष रूप से उदाहरण में आप एक StringBuilder, नहीं एक स्ट्रिंग का उपयोग करना चाहिए।

5

आप भी यह एक चार बफर

char[] buff = new char[1024]; 
int read; 
StringBuilder response= new StringBuilder(); 
while((read = bufferedReader.read(buff)) != -1) { 

    response.append(buff,0,read) ; 
} 

में पढ़ सकता है यह बहुत स्पष्ट उत्तर के लिए चार प्रति चार पढ़ने

+1

"सी" क्या है? –

संबंधित मुद्दे