处理 - 如何在txt文件中记录字符串?

时间:2016-10-26 10:46:10

标签: arrays string text-files processing

我越来越沮丧为什么这不是我想做的事情。我需要一个文本文件记录用户按下的最后10个按钮,我尝试了两种方式但是......

...此代码仅保存按下的最后一个按钮:

String [][] buttonsPressed = { {"Pressed one"}, {"Pressed two"} };
String[] sum;

void setup() {
  size(700, 350);
  sum = loadStrings("scores.txt");
}

void draw() {
}

void keyPressed() {
  if ((key=='1')) { 
    saveStrings("scores.txt", buttonsPressed[0]);
  }

  if ((key=='2')) { 
    saveStrings("scores.txt", buttonsPressed[1]);
  }

  if ((key == ENTER)) {
    printArray(sum);
  }
}

...此代码保存按下的按钮,但当我再次运行草图时可能会覆盖(可能与createWriter有关):

PrintWriter sum;

void setup() {
  size(700, 350);
  sum = createWriter("scores.txt");
}

void draw() {
}

void keyPressed() {
  if ((key=='1')) { 
    sum.println("pressed one");
  }

  if ((key=='2')) { 
    sum.println("pressed two");
  }

  if ((key == ENTER)) {
    sum.flush(); 
    sum.close();
    String[] lines = loadStrings("scores.txt");
    for (int i = 0; i <= 9; i++) {
        printArray("[" + i + "] " + lines[i]);
    }
  }
}

有没有一种简单的方法可以在不使用库的情况下执行此操作?请让我朝着正确的方向前进:)

1 个答案:

答案 0 :(得分:0)

将问题分解为更小的步骤。

第1步:在程序开头,读入现有的历史记录文件。将它们存储在某种数据结构中,如数组或ArrayList.

第2步:让数据结构跟踪最后按下的10个按钮。您需要编写将最新按钮添加到数据结构末尾的代码,如果数据结构包含10个以上的项目,则必须删除最旧的项目。也许在单独的示例草图中执行此操作,您只需将数据结构打印到控制台,而不必担心将其输出到文件中。

第3步:将数据结构输出到文件。您不必担心附加到文件,因为您的数据结构包含整个历史记录,因此您可以使用整个数据结构覆盖该文件。每次数据结构发生变化时,您可能都希望这样做。再一次,也许可以在单独的示例程序中执行此操作,然后再担心数据的来源:每次用户点击时,可能会生成一个输出随机数组的程序?

一次只关注一小步,尝试为每一步创建小示例程序。然后当你遇到困难时,你可以提出一个具体的问题并提供一个MCVE,我们将从那里开始。祝你好运。