有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java检测连接错误

我有一些Java代码,可以从URL中读取gzip文件,并对其进行解压缩。如何确保从连接读取整个文件,或者如何确保没有问题

try {
    URL url = new URL("http://example.com/de?Debug=1");
    URLConnection myUrlConnection = url.openConnection();
    GZIPInputStream gZIPInputStream = new GZIPInputStream(myUrlConnection.getInputStream());
    StringBuffer decompressedStringBuffer = new StringBuffer();
    int bytes_read;
    while ((bytes_read = gZIPInputStream.read(buffer)) > 0) {
        String part = new String(buffer, 0 ,bytes_read, "UTF-8");
            decompressedStringBuffer.append(part);
        }
        gZIPInputStream.close();
        String decompressedString = decompressedStringBuffer.toString();

        ...

} catch (MalformedURLException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

try-catch块由IntelliJ自动生成。我应该捕获哪些其他类型的异常来覆盖:connection breakpartial data receivedconnection timeout。这些都是我能想到的问题。你能想到其他人吗


共 (1) 个答案

  1. # 1 楼答案

    如果到达read()返回-1的点,那么就得到了发送的整个文件

    但不要在记忆中收集信息:每次你得到一篇文章时,都要用它做一些有用的事情:比如,把它发送出去,或者把它写入文件,或者其他任何东西

    您不需要再捕获任何异常,任何IOExceptions都表示存在某种类型的问题