java - BufferedReader को तेज़ी से कैसे पढ़ा जाए




optimization (4)

मैं इस कोड को अनुकूलित करना चाहता हूं:

InputStream is = rp.getEntity().getContent();      

BufferedReader reader = new BufferedReader(new InputStreamReader(is));

String text = "";
String aux = "";

while ((aux = reader.readLine()) != null) {
        text += aux;
      }

बात यह है कि मुझे नहीं पता कि bufferedreader की सामग्री को कैसे पढ़ा जाए और इसे ऊपर की तुलना में स्ट्रिंग में कॉपी करें। मुझे जितना संभव हो उतना समय बिताना होगा। धन्यवाद


आप अपाचे IOUtils.toString आज़मा सकते हैं। यही है जो वे करते हैं:

StringWriter sw = new StringWriter();
char[] buffer = new char[1024 * 4];
int n = 0;
while (-1 != (n = input.read(buffer))) {
    sw.write(buffer, 0, n);
}
String text = sw.toString();

आप StringBuffer उपयोग कर सकते हैं

while ((aux = reader.readLine()) != null) {
     stringBuffer.append(aux);
}

जब BufferedReader सॉकेट से पढ़ता है, तो bufferedReader.ready() को जोड़ना आवश्यक है:

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

StringBuilder sb= new StringBuilder();
String line = "";

while (br.ready() && (line = br.readLine()) != null) {
    sb.append(line + "\r\n");
}

String result = sb.toString();

मैंने स्ट्रिंगबिल्डर का उपयोग करके ऐसा करने के लिए एक सरल कार्य लिखा और अंदर IOException को पकड़ने के साथ लूप।

public String getString(BufferedReader bufferedReader) {
    StringBuilder stringBuilder = new StringBuilder();
    String line = null;

    do {
        try {
            if ((line = bufferedReader.readLine()) != null) {
                stringBuilder.append(line).append(System.lineSeparator());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } while (line != null);

    return stringBuilder.toString();
}




bufferedreader