gpt4 book ai didi

Java,限制BufferedReader读取时间

转载 作者:行者123 更新时间:2023-11-30 07:12:02 26 4
gpt4 key购买 nike

我写了这段非常经典的代码来读取一个URL的内容。

// Prepares the connection
URL url = new URL(urlString);
URLConnection uc = url.openConnection();

// Reads the data
StringBuilder data;
String inputLine;
try (InputStreamReader isr = new InputStreamReader(uc.getInputStream(), "utf-8");
BufferedReader in = new BufferedReader(isr)) {
data = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
data.append(inputLine);
}
}

// Returns the read data
return data.toString();

但有时,我正在读取的 url 包含太多数据,或者客户端连接速度太慢,或者其他原因...因此读取需要花费太多时间。

有没有办法为 BufferedReader(或 InputStreamReader,或者 URLConnection?)指定“最大阅读时间”?理想情况下,它会在达到“最大阅读时间”后抛出 TimeoutException。

我做了一些研究,但我能找到的只是对接收数据大小的限制,而不是对执行时间的限制。

最佳答案

只需在开始阅读之前调用 URLConnection.setReadTimeout()。如果超时到期,将抛出 SocketTimeoutException

关于Java,限制BufferedReader读取时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20647187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com