【问题标题】:Write URL data to file is empty将 URL 数据写入文件为空
【发布时间】:2018-12-04 06:56:06
【问题描述】:

我正在尝试从 URL 获取数据并将其写入文件,我从 URL 获取数据但文件为空,并且位于我的代码下方:

public class LiveRead {
    public static void main(String[] args){
        try {
            URL u = new URL("http://quotes.rest/qod.json?category=life");
            HttpURLConnection hr = (HttpURLConnection) u.openConnection();
            if (hr.getResponseCode() == 200){
                InputStream im = hr.getInputStream();
                StringBuffer sb = new StringBuffer();
                BufferedReader br = new BufferedReader(new InputStreamReader(im));
                FileOutputStream fo = new FileOutputStream("/Users/macos/Desktop/json");
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fo));
                String line = br.readLine();
                while (line != null){
                    System.out.println(line);
                    bw.write(line);
                    bw.newLine();
                    line = br.readLine();
                }
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

当我打开/Users/macos/Desktop/json 时,该文件为空。出了什么问题以及如何解决?

【问题讨论】:

  • 尝试刷新和关闭输出流,同时调试您的代码以确保实际读取数据

标签: java string file file-io bufferedwriter


【解决方案1】:

您应该明确地flushclose 您的作者,而不是假设Java 会在程序终止时为您执行此操作:

bw.flush();
bw.close();

【讨论】:

    猜你喜欢
    • 2019-10-01
    • 2014-01-24
    • 1970-01-01
    • 2017-12-20
    • 2019-04-02
    • 1970-01-01
    • 2013-10-05
    • 2021-11-14
    相关资源
    最近更新 更多