我想直接从R中的URL读取一个不确定长度的二进制文件。使用readBin
从URL读取而不指定文件大小,不起作用。
anImage <- readBin('http://user2010.org/pics/useR-large.png','raw')
是否有其他方法可以实现这一目标?
答案 0 :(得分:1)
这会将文件下载到工作目录,但不会直接下载到内存中。
download.file('http://user2010.org/pics/useR-large.png', 'anImage.png')
Rcurl包也可以做你想要的。 (链接因SO限制而未发布)
答案 1 :(得分:1)
一个简单的解决方案,如果将'n'设置得相当大,请读取文件,检查可能的溢出,并在必要时再试一次。
N <- 1e7
repeat
{
anImage <- readBin(filename, 'raw', n=N)
if(length(anImage) == N) N <- 5 * N else break
}