Java数组每次执行时都会打印下一个元素

时间:2012-01-18 18:06:45

标签: java arrays

假设我有这个数组

  

int [] anArray = {       100,200,300};

现在,我想每次我的程序执行它按顺序打印下一个元素。 例如,第一次执行java myProgram时,程序打印第一个元素“100”。 我第二次执行该程序,它将打印第二个元素“200”。 等等。 但第四次,它会重演。并再次打印第一个元素。

我想,我可以保存我打印的最后一个元素。但我不知道怎么做。 有什么想法吗?

7 个答案:

答案 0 :(得分:7)

您可以使用java.util.prefs.Preferences存储特定于应用程序的偏好设置。

这是一个SSCCE:

package com.stackoverflow.q8915076;

import java.util.prefs.Preferences;

public class Test {

    public static void main(String[] args) throws Exception {
        Preferences preferences = Preferences.userNodeForPackage(Test.class);
        int executeCount = preferences.getInt("execute_count", 0);
        executeCount++;
        System.out.println(executeCount);
        preferences.putInt("execute_count", executeCount);
    }

}

运行应用程序时,输出每次递增1。在上面的示例中,该值取决于当前登录的用户。如果您希望它在系统范围内,则可以使用Preferences#systemNodeForPackage()

在Windows计算机中,它存储在Windows注册表中。

另见:

答案 1 :(得分:2)

您必须将数组中“current”元素的索引保存到文件中。然后从文件中读取索引,打印元素,增加索引并在文件中更新它。

答案 2 :(得分:2)

正如此处的人建议的那样,您应该在外部文件中保存当前索引,并在到达最后一个索引时重置它。以下是可能对您有所帮助的示例代码:

private static final String FILE_NAME = "indexFile";
private static int[] anArray = { 100, 200, 300};

public static void main(String args[]) throws IOException {
    System.out.println(anArray[getIndex()]);

}

private static Integer getIndex() throws IOException {
    BufferedReader in = new BufferedReader(new FileReader(FILE_NAME));
    int index = Integer.parseInt(in.readLine());
    in.close();

    Integer newIndex = (index >= anArray.length - 1) ? 0 : index + 1;
    Writer out = new OutputStreamWriter(new FileOutputStream(FILE_NAME));
    out.write(newIndex.toString());

    out.close();
    return index;
}

编写代码时,应添加文件存在的验证等。

答案 3 :(得分:0)

最简单的方法是将最后打印元素的索引存储在文件中。

您需要处理文件尚不存在的情况(第一次运行),以及索引越过数组末尾并且必须环绕的情况。

答案 4 :(得分:0)

好吧,因为你需要在不同的执行之间使用它,你需要在某个地方坚持一个计数器。最常见的是文件或数据库(取决于项目的大小,数据库可能是一种过度杀伤)。

如果您使用的是Java 7,那么使用文件真的很轻松。并不是说Java 6或其他任何东西都很难。您应该检查NIO或NIO2(对于Java7)。

答案 5 :(得分:0)

您可以将索引保存在文件中。当索引等于array.length - 1时,重置索引。

答案 6 :(得分:0)

每次启动时都需要存储信息的程序,它们会将它们保存在HD中。

典型的例子是存储用户的偏好。

我建议将索引存储在一个文件中(前缀为“。”,显示为隐藏文件)并在启动时从该文件中读取索引。