我越来越沮丧为什么这不是我想做的事情。我需要一个文本文件记录用户按下的最后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]);
}
}
}
有没有一种简单的方法可以在不使用库的情况下执行此操作?请让我朝着正确的方向前进:)
答案 0 :(得分:0)
将问题分解为更小的步骤。
第1步:在程序开头,读入现有的历史记录文件。将它们存储在某种数据结构中,如数组或ArrayList.
第2步:让数据结构跟踪最后按下的10个按钮。您需要编写将最新按钮添加到数据结构末尾的代码,如果数据结构包含10个以上的项目,则必须删除最旧的项目。也许在单独的示例草图中执行此操作,您只需将数据结构打印到控制台,而不必担心将其输出到文件中。
第3步:将数据结构输出到文件。您不必担心附加到文件,因为您的数据结构包含整个历史记录,因此您可以使用整个数据结构覆盖该文件。每次数据结构发生变化时,您可能都希望这样做。再一次,也许可以在单独的示例程序中执行此操作,然后再担心数据的来源:每次用户点击时,可能会生成一个输出随机数组的程序?
一次只关注一小步,尝试为每一步创建小示例程序。然后当你遇到困难时,你可以提出一个具体的问题并提供一个MCVE,我们将从那里开始。祝你好运。