gpt4 book ai didi

java - JSoup BodyAsBytes 连接到 FileOutputStream 以保存临时文件不起作用?

转载 作者:太空狗 更新时间:2023-10-29 16:42:07 24 4
gpt4 key购买 nike

我使用 JSoup 来解析带有 cookie 的网站。我想使用 JSoup 从网站下载一个文件,并使用这段代码将 cookie 保存在 HashMap 中:

Connection.Response res = Jsoup.connect("http://www.webpage.com/downloadpage).execute();
Map<String, String> cookies = res.cookies();

所以当我尝试下载文件时,我使用这个:

downloadFile(Jsoup.connect("http://www.webpage.com/file.ext).cookies(cookies).ignoreContentType(true).execute().bodyAsBytes());

private void downloadFile(byte[] fileByteArray) {
try {
File temprFile = File.createTempFile("tempfile", "ext", getCacheDir());
temprFile.deleteOnExit();
FileOutputStream fos = new FileOutputStream(temprFile);
fos.write(fileByteArray);
fos.close();

} catch (MalformedURLException e){
e.printStackTrace();
} catch (IOException ex) {
String s = ex.toString();
ex.printStackTrace();
}
}

程序运行没有错误,但是当我尝试打开临时文件时,文件似乎不完整。每次,正好下载 1.408.576 个字节。例如,当我以这种方式下载 mp3 文件时,临时文件仅包含原始文件的 40 秒。我在这里缺少什么?

帮助将不胜感激。谢谢。

最佳答案

我想我很快就来这里问我的问题了。我自己在 JSoup 的 GitHub 文档中找到了解决方案。无论如何感谢您的答复! https://github.com/jhy/jsoup/blob/master/src/main/java/org/jsoup/Connection.java

/**
* Set the maximum bytes to read from the (uncompressed) connection into the body, before the connection is closed,
* and the input truncated. The default maximum is 1MB. A max size of zero is treated as an infinite amount (bounded
* only by your patience and the memory available on your machine).
* @param bytes number of bytes to read from the input before truncating
* @return this Connection, for chaining
*/
public Connection maxBodySize(int bytes);

谢谢!

关于java - JSoup BodyAsBytes 连接到 FileOutputStream 以保存临时文件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16022098/

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