所以,我提出了另一个问题“Save object data to a file”,我意识到我不够具体。
我正在编写的程序可以很好地保存文件的历史数据,所以我的目标是这样的:
if timePolled > midnight
if fileExists(fileName)
appendData()
else
createFile(data_dd_mm_yy) // in xml
endif
看看我上面的所有VB ...... ick
无论如何,对象本身看起来像这样:
public class IHandler{
public double currentLoad;
public String currentPrice;
public String configArgs[];
}
我不确定如何做到这一点。
答案 0 :(得分:3)
如果我理解正确,您想知道如何安排重复任务。这是怎么做的。首先,您需要一个runnable类,其中包含您要在run()函数中执行的逻辑(即VB代码中的顶级if语句中的内容)。假设有一个名为“task”的类的实例。然后,您需要执行以下操作:
ScheduledExecutorService exService = Executors.newScheduledThreadPool(CORE_POOL_SIZE);
exService.scheduleAtFixedRate(task, numberOfSecondsTilMidnight,
twentyFourHoursInSeconds, TimeUnit.SECONDS);
其中numberOfSecondsTilMidnight是根据当前系统时间计算的,而twentyFourHoursInSeconds只是24 * 60 * 60(这是运行它的频率。
希望这有帮助。
答案 1 :(得分:2)
对于序列化,Xstream(http://x-stream.github.io/)可以解决问题。然后你可以使用简单的Java文件IO来处理剩下的工作。