Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.EOFEException:\n从BufferedReader读取时未找到_Java_Android_Android 7.0 Nougat - Fatal编程技术网

java.io.EOFEException:\n从BufferedReader读取时未找到

java.io.EOFEException:\n从BufferedReader读取时未找到,java,android,android-7.0-nougat,Java,Android,Android 7.0 Nougat,我试图读取rss提要,但在尝试从BufferedReader读取时出现以下错误 下面是读取和转换rss提要的方法 private String downloadXML(String urlPath){ StringBuilder xml = new StringBuilder(); try { URL url = new URL(urlPath); HttpURLConnection connection = (H

我试图读取rss提要,但在尝试从BufferedReader读取时出现以下错误

下面是读取和转换rss提要的方法

private String downloadXML(String urlPath){
        StringBuilder xml = new StringBuilder();
        try {
            URL url = new URL(urlPath);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            int responseCode = connection.getResponseCode();
            Log.d(TAG, "downloadXML: The response code was " + responseCode);
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

            int charRead;
            char [] bufferRead = new char[500];
            while (true){
                charRead = reader.read(bufferRead);

                if(charRead<0){
                    break;
                }
                if(charRead>0){
                    xml.append(String.copyValueOf(bufferRead, 0, charRead));
                }
            }
            reader.close();

            return xml.toString();
        }
        catch (MalformedURLException e){
            Log.e(TAG, "downloadXML: Invalid URL " + e.getMessage() );
        }
        catch (IOException e){
            Log.e(TAG, "downloadXML: IO exception " + e.getMessage() );
            e.printStackTrace();
        }
        catch (SecurityException e) {
            Log.e(TAG, "downloadXML: SecurityEception " + e.getMessage() );
        }
        return null;
    }
私有字符串下载XML(字符串URL路径){
StringBuilder xml=新的StringBuilder();
试一试{
URL=新URL(URL路径);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
int responseCode=connection.getResponseCode();
d(标记“downloadXML:响应代码为”+responseCode);
BufferedReader=new BufferedReader(new InputStreamReader(connection.getInputStream());
int-charRead;
char[]bufferRead=新字符[500];
while(true){
charRead=reader.read(bufferRead);
if(charRead0){
append(String.copyValueOf(bufferRead,0,charRead));
}
}
reader.close();
返回xml.toString();
}
捕获(格式错误){
Log.e(标记“downloadXML:无效URL”+e.getMessage());
}
捕获(IOE异常){
Log.e(标记“downloadXML:IO异常”+e.getMessage());
e、 printStackTrace();
}
捕获(安全异常e){
Log.e(标记“downloadXML:SecurityEception”+e.getMessage());
}
返回null;
}
第62行是
charRead=reader.read(bufferRead)

任何帮助都将不胜感激。

我们的项目遇到了类似的问题。我们的解决方案是为http头添加一个配置。
addHeader(“Connection”,“close”)

尝试更改
while(true)
while(reader.readLine()!=null)
我尝试过,但得到了相同的错误。尝试使用此代码将行号:10更改为22
String str;while((str=reader.readLine())!=null){xml.append(str);}reader.close()java.io.EOFException:\n未找到:size=0在您建议的更改之后,我发现了此异常这看起来像是Android中的一个主要错误。如果你没有,它没有任何商业阅读行,也没有任何商业抱怨缺少liinefeed。NB
charRead
不可能为零,除非
buffer
的长度为零,而不是。别写毫无意义的测试,你救了我的命