Java 9-URL InputStream并通过OutputStream冻结应用程序流保存到文件中

问题描述 投票:-1回答:1

[我正在尝试使用InputStream和OutputStream java将URL的响应保存在文件中。 X字节下载后,程序冻结,没有错误,没有异常,没有。我尝试了很多解决方案(Outputstream缓冲区字节,但所有解决方案都给我同样的问题)。可能是由于一段时间后没有响应的远程服务器引起的。但我没有错误,也没有例外。

此基本示例冻结:

try (InputStream in = new URL("http://192.168.1.1:81//proc/kcore").openStream();
         OutputStream out = Files.newOutputStream(Paths.get("output.txt"))) {

        // convert input stream to output stream
        long length = in.transferTo(out);

        System.out.println("Bytes transferred: " + length);

    } catch (IOException ex) {
        ex.printStackTrace();
    }

程序下载的内容比冻结下载的内容大约2500字节。没有错误也没有例外。

有什么想法吗?谢谢大家!

java inputstream freeze outputstream
1个回答
-1
投票

抱歉@Progman,下一次我将正确发布并感谢Joni,最后我找到了使用Apache Commons IO-FileUtils的解决方案

 try {
            FileUtils.copyURLToFile(
                    new URL(myUrl),
                    new File(input.getFilename()),
                    3000,
                    3000);
        }catch (SocketTimeoutException ex)
        {
            System.out.println("SocketTimeoutException" );

        }

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.