如何在java程序不断写入时单击打开文件

时间:2016-01-05 17:03:26

标签: java file

我有一个连续运行的java程序,当URL上有一些数据时写入文本文件。 我想定期查看文件到手动目录。 但是当我尝试单击该文件时,我收到以下消息: enter image description here

我不想看到此消息,并希望查看文件内容。 我想知道它有可能吗? 我的java代码需要进行哪些更改。 这是我正在运行的while循环,用于编写文件

while (true) {
    int innerday = cal.get(Calendar.DAY_OF_MONTH);
    if (innerday != day)
        break;
    try {
        JSONObject json = new JSONObject(readUrl("url"));
        System.out.print(json.length());
        if (json.length() == 3) {
            String type = (String) json.get("type");
            System.out.println(type);
            JSONObject crs = json.getJSONObject("crs");
            System.out.println(crs.toString());
            JSONArray features = (JSONArray) json.get("features");
            for (Object object: features) {
                writer.write(object.toString());
            }
        }

    } catch (Exception e) {
        Thread.sleep(1000);
        continue;
    }
    Thread.sleep(180000);
}

任何人都可以向我提出任何解决方案或想法吗?

1 个答案:

答案 0 :(得分:0)

要使用您正在使用的当前编辑器打开文件,您需要在写入文件后关闭该文件。我假设您正在使用PrintWriter。更改后,您的循环应如下所示:

while(true)
{
    int innerday=cal.get(Calendar.DAY_OF_MONTH);
    if(innerday!=day)
        break;
try {
    JSONObject json = new JSONObject(readUrl("url"));
    System.out.print(json.length());
    if(json.length()==3)
    {
        String type=(String) json.get("type");
        System.out.println(type);
        JSONObject crs=json.getJSONObject("crs");
        System.out.println(crs.toString());
        JSONArray features= (JSONArray) json.get("features");
        writer = new PrintWriter(new FileWriter(new File("filename"), true));
        for (Object object : features) {
            writer.write(object.toString());
        }
        writer.close();
    }

} catch (Exception e) {
    Thread.sleep(1000);
    continue;
}
Thread.sleep(180000);
}

有点丑,但应该有用。

此外,随着文件的增长,写字板可能不会自动更新。为此我建议Sublime Text或类似的编辑。