java - 让 Java 能够从文本文件中读取一行并打印出来

标签 java

有了这个,我试图找出一种方法,以便让程序从我的“grades.txt”文本文件中读取,并在用户的输入匹配时逐行打印。 例如,如果输入的成绩是“93”,它将从文本文件中打印出“A”。

我尝试过 fileByteStreamBufferedReaderreadAllLinesScanner。我最终确实能够打印 "grades.txt" 但不能打印文件的实际内容。

这是我的代码:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Scanner;

public class Main {

    private static Object Paths;

    public static void main(String[] args) {
        Scanner scnr = new Scanner(System.in);
        Scanner txtscanner = new Scanner(new File("grades.txt"));


        //grades {0.0, 60.0, 70.0, 77.0, 80.0, 83.0, 87.0, 90.0, 93.0, 100.0};
        //letter grades {"F", "D", "C", "C+", "B-", "B", "B+", "A-", "A"};

        while (txtscanner.hasNextLine()) {
            System.out.println("What is your grade?");
            int grade = scnr.nextInt();

            if (grade > 100) {
                System.out.println("Invalid input");
                System.out.println("Please enter another number");
            }



            else if ((grade >= 93.00 && grade < 100)) {
                String line9 = Files.readAllLines(Paths.get("file.txt")).get(9);
                System.out.println(9);
                break;

            }
            else if (grade >= 90.0 && grade < 93) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade >= 87.0 && grade < 90) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade >= 83.0 && grade < 87) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade >= 80 && grade < 83) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade >= 77 && grade < 80) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade >= 70 && grade < 77) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade >= 60 && grade < 70) {
                System.out.print("Your grade is ");
                break;
            }
            else if (grade <= 59 && grade > 0) {
                System.out.print("Your grade is ");
                break;// write your code here
            }
        }
    }
}

最佳答案

你不需要用中断来结束 if 子句,完成的花括号会处理这个问题。您添加的中断导致它从 while 循环中弹出。由于 if .. else if .. else 的每条路径上都有一个,因此您将永远不会处理超过第一行的内容。

关于java - 让 Java 能够从文本文件中读取一行并打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59924246/

相关文章:

java - 在 Java 中尝试使用 JDBC 的资源语句

java - Karaf/Maven - 运行时找不到类

java - 我们什么时候应该创建自己的 Java 异常类?

java - 对应用程序上下文的引用是否会泄漏我保留的 fragment ?

java - 在 Java BigInteger 中移动单个半字节?

java - JavaDoc 中是否应该描述 unchecked Exception?

javax.xml.ws.WebServiceException : Method X is exposed as WebMethod, 但是没有对应的wsdl操作

java - Spring Hibernate 事务开销

java - eclipse 中的 Struts.xml 包命名空间

java - Java 中的 AES-128 加密