如何衡量从网址

时间:2016-11-16 20:02:52

标签: java filesize

我正在从URL下载PDF并将其保存到本地驱动器。

下载代码工作正常,问题是当我尝试测量文件的大小时,它总是声称它是52个字节。我感到困惑......你能不能回顾一下我的代码并告诉我,我是否遗漏了什么?

try {
                 link = new URL("http://www.annualreports.co.uk/HostedData/AnnualReports/PDF/LSE_" + entry[0] + "_2015.pdf");
                 // http://www.annualreports.co.uk/HostedData/AnnualReports/PDF/LSE_BT_2015.pdf

                 InputStream in = new BufferedInputStream(link.openStream());
                 ByteArrayOutputStream out = new ByteArrayOutputStream();

                 byte[] buf = new byte[1024];
                 int n = 0;
                 while (-1!=(n=in.read(buf)))
                 {
                    out.write(buf, 0, n);
                 }
                 out.close();
                 in.close();
                 byte[] response = out.toByteArray();

                 FileOutputStream fos = new FileOutputStream(fileName);
                 fos.write(response);
                 fos.close();

            } catch (Exception e) {
                System.out.println("Couldn't retrieve : " + entry[1] + " " + year);
            }

            int bytes = fileName.length();
            System.out.println(bytes);

1 个答案:

答案 0 :(得分:0)

下面。试试吧。

URL url = new URL("http://www.annualreports.co.uk/HostedData/AnnualReports/PDF/LSE_" + entry[0] + "_2015.pdf");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.addRequestProperty("User-Agent", "Mozilla/4.76");
int size = conn.getContentLength();

        if (size < 0) {
            System.out.println("File not found");
        } else {
            System.out.println("File size in Bytes: " + size);
        }