簡體   English   中英

將輸入保存到 txt。 Java 中的文件

[英]Saving Inputs to txt. file in Java

我一直在構建程序,其中一個。 要求教師提供 5. 學生的信息,所有輸入應保存為 txt。 文件。 雖然我的文件總是被創建但總是空的......有人可以幫我找出我的錯誤嗎?

import java.util.Scanner;
import java.io.PrintWriter;
import java.io.IOException;


public class programming_project_1 {
    public static void main(String[] args) throws IOException
    {    


        int numbersOfLoops = 1;

        Scanner scn = new Scanner(System.in);

        while (true){
            if (numbersOfLoops == 6){
                break;
            }

            System.out.println("First Name: " );

            String first_name = scn.next();

            System.out.println("Last Name: " );

            String last_name = scn.next();

            System.out.println("Final Score: ");

            int score = scn.nextInt();

            numbersOfLoops++ ;

            PrintWriter out = new PrintWriter("grades.txt");

            System.out.println("First Name: " + first_name);
            System.out.println("Last Name: " + last_name);
            System.out.println("Final Score: " +  score);

            out.close();

        }
    }
}

你永遠不會寫out 這里:

System.out.println("First Name: " + first_name);
System.out.println("Last Name: " + last_name);
System.out.println("Final Score: " +  score);

您可能的意思是out.println而不是System.out.println

System.out是寫入標准 output 的PrintStream 另一方面, out是您聲明的PrintWriter並寫入文件。

此外,您可能希望在循環之前打開文件,然后再關閉它,否則每次迭代都會覆蓋前一個。

最后,補充幾點:

  1. 這是循環5次的奇怪方式。 你可以使用for代替。
  2. 您應該努力遵守 java 命名約定。 Class 名稱以大寫字母開頭並使用 CamelCase,而不是 snake_case。 變量也一樣,但它們以小寫字母開頭。

把它們加起來:

import java.util.Scanner;
import java.io.PrintWriter;
import java.io.IOException;


public class ProgrammingProject1 {
    public static void main(String[] args) throws IOException
    {    
        Scanner scn = new Scanner(System.in);

        PrintWriter out = new PrintWriter("grades.txt");

        for (int i = 0; i < 5; i++) {

            System.out.println("First Name: " );
            String firstName = scn.next();

            System.out.println("Last Name: " );
            String lastName = scn.next();

            System.out.println("Final Score: ");
            int score = scn.nextInt();

            out.println("First Name: " + firstName);
            out.println("Last Name: " + lastName);
            out.println("Final Score: " +  score);

        }
        out.close();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM