首页 > 解决方案 > 在 Java 中无法正确读取 Txt 文件

问题描述

我目前正在尝试读取包含 BscIT 的主题和音节列表信息的 txt 文件。但它在一行中只读取一个单词。我附上了终端中的输出。

在此处输入图像描述


这是我的代码



这是我创建的方法

class Course {
     public void Level(){
         System.out.println("Please Enter Your respective Levels and Subjects");
      }
}

class BBA extends Course{
     public void Level () {
        try {
            FileReader fileReader = new FileReader("BBA.txt");
            Scanner scanner = new Scanner(fileReader);
            int c;
            while ((c = fileReader.read()) !=-1) {
                System.out.println((char)c);
            }
        }
        catch (IOException e){
            System.out.println("Error");
        }
     }
 }

 class BscIT extends Course{
     public void Level () {
        try {
            FileReader fileReader = new FileReader("BscIT.txt");
            Scanner scanner = new Scanner(fileReader);
            int c;
            while ((c = fileReader.read()) !=-1) {
                System.out.println((char)c);
            }
        }
        catch (IOException e){
            System.out.println("Error");
        }
      }
  }

这里是主要方法

public class Marks {
    public static void main(String[] args) throws FileNotFoundException {
        Course course = new Course();
        course.Level();
        System.out.println("1.BBA\t 2.BscIT");
        Scanner sr = new Scanner(System.in);
        String choice1 = sr.nextLine();
        while (!choice1.equals("1") && !choice1.equals("2")) {
            System.out.println("Enter a Valid number of Selection you want");
            choice1 = sr.nextLine();

        }
        if (choice1.equals("1")){
            Course cr = new BBA();
            cr.Level();
           
        }
        else {
            Course cr1 = new BscIT();
            cr1.Level();
        }
    }
 }

标签: java

解决方案


如果您想使用扫描仪,那么您的代码可能应该是这样的:

while (scanner.hasNextLine())
{
    String line = scanner.nextLine();
    System.out.println( line );
}

并且整行的文本将被一次性读取。

如果您不想一次读取整行,请阅读 Scanner API 以获取其他允许您读取数据的方法。


推荐阅读