截至今年年初,美国财政部网站每月以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();
}
}
感谢任何帮助。