如何显示多个用户输入的答案以及如何将其全部写入文本文件



所以我的代码遇到了另一个问题。我想做的是能够输出用户输入的不同条目。我还希望能够将所有所述条目输出到.txt文件中。稍后我将在 Excel Microsoft使用它。这是我到目前为止的代码:

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.text.*;
import java.io.*;
public class Project1{

public static void main(String[] args) throws FileNotFoundException
{
String fileName = "out.txt";
try {

Scanner keyboard = new Scanner(System.in);
Scanner user_input = new Scanner(System.in);
Scanner scan = new Scanner(System.in);
PrintWriter outFile = new PrintWriter("Project1.out");
String employee_Fname;
String employee_Lname;
String employee_city;
String employee_state;
double empzip;
String employee_job;
double empsal;
char again;
int count = 1;
String answer;
do {
System.out.print("Enter Employees First Name: ");
employee_Fname = user_input.next();
System.out.println();
System.out.print("Enter the employee's last name: ");
employee_Lname = user_input.next();
System.out.println();
System.out.print("Enter employee's city: ");
employee_city = user_input.next();
System.out.println();
System.out.print("Enter employee's state: ");
employee_state = user_input.next();
employee_state.toUpperCase();
System.out.println();
System.out.print("Enter employee's zipcode: ");
empzip = keyboard.nextDouble();
System.out.println();
System.out.print("Enter employee's job title: ");
employee_job = user_input.next();
System.out.println();
System.out.print("Enter employee's salary: ");
empsal = keyboard.nextDouble();
System.out.println();

while(empsal > 2000000) {
System.out.println();
System.out.println("Invalid salary entered! Please tryn again.");
System.out.print("Enter employee's salary: ");
empsal = keyboard.nextDouble();
System.out.println();

System.out.println();
}

System.out.print("Do you want to enter another employee? Y/N?");
answer = keyboard.next();
} while (answer.equals("Y"));
outFile.printf("Employee first name is: %n "+ employee_Fname +"%n");
outFile.printf("Employee last name is: %n " + employee_Lname +"%n");
outFile.printf("Employee city is: %n " + employee_city + "%n");
outFile.printf("Employee state is: %n " + employee_state +"%n");
outFile.printf("Employee zipcode is: %n " + empzip + "%n");
outFile.printf("Employee job is: %n  " + employee_job +"%n");
outFile.printf("Employee salary is:  %n " + empsal +"%n");
outFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}

但是,输出甚至没有给我一个文本文件,如果我输入第二个条目,它会删除我之前输入的条目,只显示最后输入的条目。也许我把"尝试"放得早?

编辑:嘿,没关系,我想通了的文本部分!事实证明我没有正确定义"文件名"。但是,我的程序仍然遇到问题。我仍然需要帮助,因为它不会让我显示除最后输入的条目之外的任何其他内容。不仅如此,txt 文件还为空。我很高兴我至少让 txt 文件出现,但它是空的。

'

您需要先将结果打印到文件中,然后再转到下一个员工。此外,您需要使用一个 PrintWriter 来获取文件编写器,最终使用一个文件,以便您可以追加而不是像其他用户指出的那样重写内容。

public static void main(String[] args) {
String fileName = "out.txt";
try {
Scanner keyboard = new Scanner(System.in);
Scanner user_input = new Scanner(System.in);
Scanner scan = new Scanner(System.in);
String employee_Fname;
String employee_Lname;
String employee_city;
String employee_state;
double empzip;
String employee_job;
double empsal;
char again;
int count = 1;
String answer;
do {
System.out.print("Enter Employees First Name: ");
employee_Fname = user_input.next();
System.out.println();
System.out.print("Enter the employee's last name: ");
employee_Lname = user_input.next();
System.out.println();
System.out.print("Enter employee's city: ");
employee_city = user_input.next();
System.out.println();
System.out.print("Enter employee's state: ");
employee_state = user_input.next();
employee_state.toUpperCase();
System.out.println();
System.out.print("Enter employee's zipcode: ");
empzip = keyboard.nextDouble();
System.out.println();
System.out.print("Enter employee's job title: ");
employee_job = user_input.next();
System.out.println();
System.out.print("Enter employee's salary: ");
empsal = keyboard.nextDouble();
System.out.println();
while (empsal > 2000000) {
System.out.println();
System.out.println("Invalid salary entered! Please tryn again.");
System.out.print("Enter employee's salary: ");
empsal = keyboard.nextDouble();
System.out.println();

System.out.println();
}
try (PrintWriter outFile = new PrintWriter(new FileWriter(new File("Project1.out"), true))) {
outFile.printf("Employee first name is: %n " + employee_Fname + "%n");
outFile.printf("Employee last name is: %n " + employee_Lname + "%n");
outFile.printf("Employee city is: %n " + employee_city + "%n");
outFile.printf("Employee state is: %n " + employee_state + "%n");
outFile.printf("Employee zipcode is: %n " + empzip + "%n");
outFile.printf("Employee job is: %n  " + employee_job + "%n");
outFile.printf("Employee salary is:  %n " + empsal + "%n");
}
System.out.print("Do you want to enter another employee? Y/N?");
answer = keyboard.next();
} while (answer.equals("Y"));
} catch (IOException e) {
e.printStackTrace();
}
}

相关内容

最新更新