gpt4 book ai didi

java - FileWriter 不写入用户输入时输入的所有字符串

转载 作者:行者123 更新时间:2023-11-30 01:52:10 27 4
gpt4 key购买 nike

在下面的 FileWriter 中,我正在写入一个名为“employee.txt”的文件。它写入文件,但最初它只是附加到文件而不是每次都进入新行。从那时起,我通过添加“\n”来编辑代码,使其下降一行。我的问题是,尽管在代码中添加或删除了“\n”,但它似乎只接受用户输入的最后一个输入。例如。如果用户想输入 2 个员工,则只需输入最后一个员工姓名。请参阅下面的代码:

 static int addEmployee() throws IOException{
int x;
String y = null;
Scanner emp_input = new Scanner(System.in);
System.out.println("Enter how many employees you want to add to file:\n ");
x = emp_input.nextInt();

for (int i=0; i<x;i++) {
System.out.println("Add an employee name: ");
y= emp_input.next();
}

try {
FileWriter fileWriter = new FileWriter("employee.txt", true);
fileWriter.write("\n");
fileWriter.write(y);
fileWriter.close();


} catch (IOException e) {

e.printStackTrace();
}

更新为在写入文件之前打印到屏幕以测试输出:

    static int addEmployee() throws IOException{
int x;
String y = null;
Scanner emp_input = new Scanner(System.in);
System.out.println("Enter how many employees you want to add to file:\n ");
x = emp_input.nextInt();


for (int i=0; i<x;i++) {
System.out.println("Add an employee name: ");
y= emp_input.next();
}

System.out.println(y);



return 0;

}
}

最佳答案

您在 for 循环之后创建该文件编写器。并且:您只是将换行符和最后一个y对象写入文件写入器!

所以:在循环之前br创建文件写入器,然后在循环体期间将每个员工对象写入同一个文件写入器实例!

额外提示:使用具有某种意义的名称(y没有意义,它只会让读者感到困惑)并遵循 Java 命名约定。

最后:您应该研究一下“范围”一词的含义。建议:不要全局声明变量,尝试在最小的有意义范围内声明它们!

关于java - FileWriter 不写入用户输入时输入的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55681952/

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