【问题标题】:How to download bytes of file from URL at specific location from in inputstream? [closed]如何从输入流中特定位置的 URL 下载文件字节? [关闭]
【发布时间】:2011-10-08 12:17:55
【问题描述】:

如何从输入流中特定位置的 URL 下载文件字节?

【问题讨论】:

  • 您能否更具体地说明输入流中的位置是什么意思?
  • 假设我的文件大小为 10 字节。我为此创建了输入流,然后我想从输入流中读取最后 3 个字节。 (8 到 10 个字节)

标签: java inputstream


【解决方案1】:

从 URL 创建输入流,读取字节并用它们做你想做的事,例如

InutStream in = new URL("http://foo.bar").openStream();
OutputStream out = new FileOutputStream("/usr/foo/bar");
byte[] buf = new byte[1024];
int n = 0;

while((n = in.read(buf))) {
    out.write(buf, 0, n);
    out.flush();
}

in.close();
out.close();

【讨论】:

    【解决方案2】:

    您必须“读取”所有字节。跳过你不需要的第一个。当您想要开始从流中保存数据时,只需保存所需的字节,然后关闭流。

    根据类的不同,skip() 之类的方法可以帮助您跳过不需要的字节。

    【讨论】:

    • 如果我的文件大小为 1GB,并且我只想要最后 1KB,那么如果我读取所有字节,这就是我的资源的西部......
    • 好的。你能告诉我如何获取文件大小吗?
    • 可能是 URLConnection 对象的 getContentLength() 方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多