gpt4 book ai didi

java - 从用户输入多行打印到文件?

转载 作者:行者123 更新时间:2023-11-29 08:25:28 27 4
gpt4 key购买 nike

我正在尝试编写一个程序,要求用户输入他们想要保存的打油诗的名称,然后它创建一个具有该打油诗名称的文件,然后要求他们写打油诗,这将然后保存到文件中。我有这个代码来创建文件,但是当我尝试将打油诗写入文件时,它似乎陷入循环并继续将第一行输入到文件中。非常感谢任何帮助?

public void start () {
System.out.println("<<THIS PROGRAM SAVES A LIMERICK THAT YOU HAVE WROTE>>");
}

public File create () {
System.out.println("<<ENTER THE NAME OF THE LIMERICK>>");
name = scan.nextLine();
nameFile = name + ".txt";
File file = new File(nameFile);
try {
if (file.createNewFile() ) {
System.out.println("<<FILE CREATED>>");
} else {
System.out.println("<<FILE ALREADY EXISTS>>");
}
} catch (IOException e) {
e.printStackTrace();
}
return file;
}

public void write () {
Limerick write = new Limerick();
File file = write.create();
System.out.println("<<ENTER THE LIMIRICK>>");
PrintWriter pw;
try {
pw = new PrintWriter (new BufferedWriter (new FileWriter(file)));
limerick = scan.nextLine();
while (!(limerick.equals("DONE"))) {
pw.println(limerick);
}
pw.close();
System.out.println("<<LIMERICK WRITTEN TO FILE>>");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void main (String args[]) {
Limerick method = new Limerick();
method.start();
method.write();

}

最佳答案

在接下来的循环中,打油诗的值永远不会更新,因此进入无限循环

while (!(limerick.equals("DONE"))) {
pw.println(limerick);
}

改成这样:

while (!(limerick.equals("DONE"))) {
pw.println(limerick);
limerick = scan.nextLine();
}

从而在每次迭代后更新 limerick 的值。

关于java - 从用户输入多行打印到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53633001/

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