reader.readLine()) 返回空但打印内容

reader.readLine()) Returning null But printing Content

我想获得服务器响应(实际上是来自网站的文本),即使它正在返回 null 但正在打印内容。 代码:

        inputStream = connection.getInputStream();
        String response = "Test";
        Log.i("String Content", response);
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
        while ((response = reader.readLine()) != null){
            Log.i("String Content", response);
            Log.i("Server Response", reader.readLine());
        }
        Log.i("String Content", response);

输出:

04-10 17:55:05.128    3404-3425/com.example.example I/String Content﹕ Test
04-10 17:55:05.129    3404-3425/com.chatter.chatter I/String Content﹕ [ 04-10 17:55:05.129  3404: 3425 I/Server Response ] Successfull!
04-10 17:55:05.129    3404-3425/com.example.example E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-279
    Process: com.example.example, PID: 3404
    java.lang.NullPointerException: println needs a message
            at android.util.Log.println_native(Native Method)

怎么可能?有人可以帮我解决这个问题吗?

如果您有一个 InputStream 并想将其内容保存到 String,您应该这样做:

try{
    inputStream = connection.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream , StandardCharsets.UTF_8));
    String str = null;
    StringBuilder sb = new StringBuilder();
    while ((str = reader.readLine()) != null) {
        sb.append(str);
    }
    String response = sb.build();
    Log.d("String Content", response);
} catch (IOException e) {
    e.printStackTrace();
}