Java Writer一次写入后停止

时间:2018-10-09 10:52:38

标签: java writer

我希望读取URL的内容并将其写入文件,这可以按预期工作,但是即使程序控制台显示多行,也只能将其写入一次。

代码:

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
while(true) {
    URL oracle = new URL("https://linkToData.com");
    BufferedReader in = new BufferedReader(new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null) {
        writer.println(inputLine);
        System.out.println(inputLine);
    }
    writer.close();

URL中的数据不断刷新,因此每次控制台打印显示时都应该有不同的数据,但这只是将第一个实例写入文件中。

2 个答案:

答案 0 :(得分:1)

密钥是writer.close()!如果您想每次都重新写入文件,则必须每次重新打开Writer

答案 1 :(得分:0)

如果您想每次都添加文件,则必须刷新writer而不是关闭并在最后关闭。

PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
while(condition) {
    URL oracle = new URL("https://linkToData.com");
    BufferedReader in = new BufferedReader(new  InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null) {
        writer.println(inputLine);
        System.out.println(inputLine);
    }
    writer.flush();

}
writer.close();