如何下载每月财政部档案

时间:2016-01-08 04:47:04

标签: java excel

截至今年年初,美国财政部网站每月以txt格式发布美国收据和支出数据。编写程序来读取和存储信息很容易。我使用的只有:

URL url = new URL("https://www.fiscal.treasury.gov/fsreports/rpt/mthTreasStmt/mts1214.txt")
URLConnection connection.openConnection();
InputStream is = connection.getInputStream();

然后我只是将InputStream读入本地文件。

现在,当我尝试相同的代码时,对于May,我得到一个没有任何内容的InputStream。 只需点击{{3}}即可打开Excel工作表。

如果您不介意单独点击每个链接,那么这很棒......将文件保存到某处...手动打开以启用编辑...然后再将其保存为真正的.xlsx文件(因为他们真的递给你一个.xls文件。)

但是当我从该链接创建一个URL并使用它来获取一个InputStream时,它是空的。我也直接尝试了url.openStream()。没有什么不同。

任何人都可以看到我可以使用程序恢复阅读新格式的方法吗?

如果我感兴趣的话,我现在使用这段代码一点一点地将流写入文件......但是没有位,所以我不知道它是否有效。

static void copyInputStreamToFile( InputStream in, File file ) {
    try {
        OutputStream out = new FileOutputStream(file);
        byte[] buf = new byte[1024];
        System.out.println("reading: " + in.read(buf));
        //This is what tells me it is empty, i.e. the loop below is ignored.
        int len;
        while((len=in.read(buf))>0){
            out.write(buf,0,len);
        }
        out.close();
        in.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
} 

感谢任何帮助。

0 个答案:

没有答案