Как отобразить несколько введенных пользователем ответов и как записать все это в текстовый файл - PullRequest
0 голосов
/ 01 февраля 2020

Итак, я столкнулся с другой проблемой с моим кодом. То, что я хочу сделать, это иметь возможность выводить различные записи, введенные пользователем. Я также хочу, чтобы все указанные записи выводились в файл .txt. Я буду использовать это для Microsoft Excel позже. Это мой код:

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();
}
}
}

Вывод, однако, даже не дает мне текстовый файл, и если я ввел вторую запись, он удаляет запись, которая была у меня до этого, и отображает только последнюю введенную запись. Может быть, я поставил «попробовать» рано?

РЕДАКТИРОВАТЬ: ЭЙ не обращайте внимания на текстовую часть, я понял это! Оказывается, я не правильно определил «имя файла». Однако у меня все еще проблемы с моей программой. Мне все еще нужно помочь с тем фактом, что он не позволит мне отображать что-либо еще, кроме последней введенной записи. Не только это, но текстовый файл пуст. Я рад, что у меня хотя бы есть текстовый файл, который нужно показать, но он пуст.

`

1 Ответ

0 голосов
/ 01 февраля 2020

Вам нужно распечатать результаты в файл, прежде чем переходить к следующему сотруднику. Кроме того, вам нужно использовать PrintWriter, который использует FileWriter, и, в конечном счете, File, чтобы вы могли добавлять вместо перезаписи содержимое, как заметил другой пользователь.

    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();
        }
    }
...