我有一个连续运行的java程序,当URL上有一些数据时写入文本文件。 我想定期查看文件到手动目录。 但是当我尝试单击该文件时,我收到以下消息:
我不想看到此消息,并希望查看文件内容。 我想知道它有可能吗? 我的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);
}
任何人都可以向我提出任何解决方案或想法吗?
答案 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或类似的编辑。