gpt4 book ai didi

java - 扫描仪不读取文件内容

转载 作者:行者123 更新时间:2023-12-01 11:21:53 25 4
gpt4 key购买 nike

我试图在第一次创建一个名为 amountSessions 的文件时将数字 0 写入该文件,正如您在注释“第一次运行”下面的 if 语句中看到的那样,该语句到目前为止有效,但稍后在程序中(在 writeToFile 方法的末尾)在注释“每次运行增加数字”下面,我想在每次程序运行时将我之前讨论的 0 加 1。不幸的是,当我编译并运行该程序时,出现以下错误。为什么是这样?非常感谢大家!

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at math_program.fileWriting.getInt(fileWriting.java:62)
at math_program.fileWriting.writeToFile(fileWriting.java:41)

//Test

package testing;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class Kappa
{
String numberFilePath = "/Users/john/Desktop/numProblems.txt";
String sessionFilePath = "/Users/john/Desktop/amountSessions.txt";
File testFile = new File(numberFilePath);
File amountSessions = new File(sessionFilePath);

public void writeToFile() throws IOException
{

//On the first run
if(!testFile.exists())
{
testFile.createNewFile();
} else if(!amountSessions.exists())
{
amountSessions.createNewFile();
FileWriter sessionWriter = new FileWriter(amountSessions);
sessionWriter.write("0");
sessionWriter.close();
}

FileWriter durationWriter = new FileWriter(testFile);
FileWriter sessionWriter = new FileWriter(amountSessions);

//Write Duration
String ans = prompt();
durationWriter.write(ans);
durationWriter.close();

//Increment number each run
sessionWriter.write(getInt());
sessionWriter.close();

System.exit(0);
}

public void grab() throws FileNotFoundException
{
Scanner numProblemsReader = new Scanner(new File("/Users/john/Desktop/numProblems.txt"));
Scanner numSessionReader = new Scanner(new File("/Users/john/Desktop/amountSessions.txt"));
int number = numProblemsReader.nextInt();
int numSessions = (numSessionReader.nextInt() + 1);

System.out.println("The number read from the file is: " + number);
File replaceFile = new File("/Users/john/Desktop/session" + numSessions + ".txt");
testFile.renameTo(replaceFile);
}

public String getInt() throws FileNotFoundException
{
Scanner numSessionReader = new Scanner(new File("/Users/john/Desktop/amountSessions.txt"));
int numSessions = ((numSessionReader.nextInt()) + 1);
String newNum = Integer.toString(numSessions);
return newNum;
}

public String prompt()
{
String ans = JOptionPane.showInputDialog ("Enter the new amount of problems per training session (with number in minutes):");

while(!ans.matches("[0-9]+"))
{
ans = JOptionPane.showInputDialog ("Please re-enter the new amount of problems per training session (with number in minutes):" );
}

return ans;
}
}

最佳答案

改变

} else if(!amountSessions.exists())

}
if(!amountSessions.exists())

否则,如果两者都不存在,则仅创建第一个文件。

关于java - 扫描仪不读取文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31131464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com