Java openStream方法的字符数限制?

时间:2019-12-19 17:52:27

标签: java file url limit

这是我尝试的代码。

Files.deleteIfExists(Paths.get("NewFile.txt"));
URL smallURL = new URL(url);

Files.copy(smallURL.openStream(), Paths.get("NewFile.txt"));
System.out.println(Files.size(Paths.get("NewFile.txt")));

如果我的网址包含少于一定数量的字符,则可以正常工作,但是当我尝试使用包含150,000个字符的网址链接时,它只会将超过65,000个字符复制到“ NewFile.txt”中。

.openStream可以输入多少个字符有上限吗?我该如何解决?

编辑:我查看了它停止添加到文件的确切字符,我看不到它们的任何独特之处。此时的模式几乎已经确定,并且没有发生错误。

2 个答案:

答案 0 :(得分:0)

否,InputStream没有这种限制。 (顾名思义,它是一种流API,它以流方式读取数据)

URL url = new URL("https://en.wikipedia.org/wiki/Microsoft");
Files.copy(url.openStream(), Paths.get("NewFile.txt"));
System.out.println(Files.size(Paths.get("NewFile.txt")));

此打印-547055

我怀疑您所使用的URL中的内容可能有些奇怪,请对其进行交叉检查。

答案 1 :(得分:0)

您必须关闭URLConnection的InputStream:

Files.deleteIfExists(Paths.get("NewFile.txt"));
URL smallURL = new URL(url);
InputStream is = smallURL.openStream();
Files.copy(is, Paths.get("NewFile.txt"));
System.out.println(Files.size(Paths.get("NewFile.txt")));
is.close();