java - 输入流和输入流读取器

标签 java android

try{
    url = new URL(urls[0]);
    connection = (HttpURLConnection) url.openConnection();
    connection.connect();

    InputStream in = connection.getInputStream();
    InputStreamReader reader = new InputStreamReader(in);

    int data = reader.read();

    while(data != -1){
        char ch = (char) data;
        result+=ch;
        data = reader.read();
    }

    return result;
}catch(Exception e){
    e.printStackTrace();
    return null;
}

谁能解释一下这段代码的功能吗?因为我不明白为什么我们在这里使用整数来存储流值以及 while 循环在这里如何工作。

最佳答案

根据 InputStreamReader 文档 hereread() 返回一个整数值“读取的字符,如果已到达流末尾,则返回 -1”。这意味着 read() 一次读取一个字符,如果返回值为 -1,则意味着我们已到达流的末尾,并且循环条件现在为 false 并退出.

关于java - 输入流和输入流读取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60099321/

相关文章:

java - 多 :Threading - Is this the right approach?

java - ArrayList通过List.of()初始化

java - 在制作Android SDK时,有没有一种方法可以不断更新开发人员的值,而无需他们传递 View ?

java - Libgdx getAzimuth() 不起作用

android - 每当我在 android studio 中创建一个新项目时,我都会收到一个错误

java - 使用配置单元出现异常 java.lang.NoClassDefFoundError : org/apache/tez/dag/api/SessionNotRunning

java - 使用drawString()时如何将字体大小减小到0.0001f?

Android 将 ImageButton 设置为切换

Android无法解析为类型

java - 具有切换功能的小部件