有人可以解释一下这段代码的工作原理

时间:2014-05-03 03:48:09

标签: java android

我是从一页

获得的

Android AsyncTask method that I dont know how to solve

但是我不确定它如何完整地工作,如果有人可以解释我是什么时候和这部分“iso-8859-1”  我知道8是字符数,但我可能是错的

static InputStream is = null;
static String json = "";
is = httpEntity.getContent();

BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();

1 个答案:

答案 0 :(得分:0)

您的代码基本上从从httpentity获取的输入流中读取,将其放入StringBuilder并最终将其转换为json。

为了理解api代码,javadoc是你的朋友。

这是我在BufferredReader javadoc

中找到的内容
  

public BufferedReader(Reader in,                 int sz)    创建使用指定大小的输入缓冲区的缓冲字符输入流。

     

参数:** in - A读取器sz - 输入缓冲区大小

     

抛出: IllegalArgumentException - 如果sz是< = 0

http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html

作为读者,您的代码中使用了InputStreamReader。这是InputStreamReader

的相关javadoc
  

public InputStreamReader(InputStream in,Charset cs)创建一个   使用给定字符集的InputStreamReader。   的参数:   在 - 安   InputStream cs - 一个字符集

http://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream,java.nio.charset.Charset)

所以“iso-8859-1”是指定的字符集。