【发布时间】:2018-07-22 01:30:01
【问题描述】:
我需要以下代码的帮助-基本上我要做的是不断提示用户输入数字,直到他们输入“完成”完成,然后提示用户输入文件名,以便可以将这些值保存到那个文件。例如,如果用户输入“output.txt”,那么程序应该将已经读取的数字写入“output.txt”。
这是我目前所拥有的:
public static void main(String[] args) {
try{
FileWriter file= new FileWriter("filename.txt");
Scanner input= new Scanner(System.in);
boolean done= false;
do{
System.out.println("Enter a number");
String value= input.nextLine();
if (value.equalsIgnoreCase("done")){
done=true;
Scanner input1= new Scanner(System.in);
System.out.println("What is the filename?");
String filename1= input1.next();
FileWriter finalFile = new FileWriter(filename1);
} else {
try{
double number= Double.parseDouble(value);
file.write(number+ "\n");
file.flush();
}
catch (NumberFormatException fnfe) {
System.out.println("Not valid");
}
}
} while(!done);
input.close();
file.close();
System.out.println("Success");
}
catch (IOException ioe){
System.out.println(ioe.toString());
}
}
}
下面的代码输出两个文件,一个是文本文件 (filename.txt),另一个是由用户适当命名的文件。我怎样才能解决这个问题?应该只有一个输出。
任何建议将不胜感激!
【问题讨论】:
-
那么,如果我没看错的话,您想提示用户输入任意数量的数字,直到他们输入
"done",然后将这些值写入文件?如果是这样,您需要以某种方式存储值,直到用户输入"done",请求文件名然后写入数字,或者您需要先获取文件名 -
数字存储在通用命名文件“filename.txt”中。见上面的评论;先询问文件名,而不是事后重命名该文件。
标签: java try-catch java.util.scanner filewriter