Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java(int)中节省时间从哪里开始?_Java - Fatal编程技术网

在Java(int)中节省时间从哪里开始?

在Java(int)中节省时间从哪里开始?,java,Java,谁能给我一个在Java中保存整数的快速提示。我正在使用定时器制作一个自定义时钟&希望在退出程序(或启动自动重启并调用save方法)时节省时间&从停止的地方开始 我的代码: MainClass中的方法: t = new Timer(); tt = new JGameTimer(); t.scheduleAtFixedRate(tt, 1000, 1000); TmerClass: private static int timeInSecon

谁能给我一个在Java中保存整数的快速提示。我正在使用定时器制作一个自定义时钟&希望在退出程序(或启动自动重启并调用save方法)时节省时间&从停止的地方开始

我的代码:

MainClass中的方法:

        t = new Timer();
        tt = new JGameTimer();
        t.scheduleAtFixedRate(tt, 1000, 1000);
TmerClass:

    private static int timeInSeconds = 0, timeInMinutes = 0, timeInHours = 0, timeInDays = 0, timeInYears = 0;
    private int lastTimeInSeconds, lastTimeInMinutes, lastTimeInHours, lastTimeInDays, lastTimeInYears;
    private boolean timeHasBeenSet = false;

    public void run() {
        if (!timeHasBeenSet) {
        timeInSeconds = lastTimeInSeconds;
        timeInMinutes = lastTimeInMinutes;
        timeInHours = lastTimeInHours;
        timeInDays = lastTimeInDays;
        timeInYears = lastTimeInYears;
        timeHasBeenSet = true;
        }else{
        continueTime();
        }
    }

    public void saveTime() {
        lastTimeInSeconds = timeInSeconds;
        lastTimeInMinutes = timeInMinutes;
        lastTimeInHours = timeInHours;
        lastTimeInDays = timeInDays;
        lastTimeInYears = timeInYears;
    }

    public void continueTime() {
        timeInSeconds++;
        if (timeInSeconds == 60) {
            timeInSeconds = 0;
            timeInMinutes++;
        }
        if (timeInSeconds == 10) {
            saveTime();
            System.out.println("Time Saved (Seconds)");
        }
        if (timeInMinutes == 60) {
            timeInMinutes = 0;
            timeInHours++;
        }
        if (timeInMinutes == 2) {
            saveTime();
            System.out.println("Time Saved (Minutes)");
        }
        if (timeInHours == 24) {
            timeInHours = 0;
            timeInDays++;
        }
        if (timeInDays == 2920) {
            timeInDays = 0;
            timeInYears++;
        }
        System.out.println("Time is "+timeInYears+":"+timeInDays+":"+timeInHours+":"+timeInMinutes+":"+timeInSeconds+"");
    }

一个快速的技巧是将整个时间对象存储到一个文件中。实现接口可序列化,然后在web上搜索如何使用ObjectOutputStream存储/读取可序列化对象。有关在关机时添加代码的信息,请查看。

我建议使用底层
DataOutputStream
提供了编写基元类型的方法:

DataOutputStream output = new DataOutputStream(
        new FileOutputStream(new File("my-file.dat")));
output.writeInt(someInt);
// ... write more values ...
稍后,您可以使用
DataInputStream
FileInputStream
将它们读回(以相同的顺序)


或者,您可以编写一个保存要保存的数据的类,并使用Java的序列化机制来保存/加载数据。

听起来您想创建一个小文件,其中包含程序使用的最后一次存储的时间。使用。