FileReader 在 Java 中不工作

FileReader not working in Java

我正在尝试读取文件,但它无法正常工作。我在这里看了很多例子,我使用的方法是从对别人问题的回答中借来的。我知道您可以使用 bufferedreader,但我现在想坚持使用我在 类 中所知道和正在学习的内容。当我 运行 这段代码时,我只得到一个空行,但文件包含 4 行信息。

import java.io.*;
import java.util.Scanner;
import java.lang.StringBuilder;
import java.io.File;
import java.io.FileInputStream;

public class fileWriting{
   public static void main(String[] args) throws IOException{
     //Set everything up to read & write files
     //Create new file(s)
     File accInfo = new File("accountInfo.txt");
     //Create FileWriter
     Scanner in = new Scanner(new FileReader("accountInfo.txt"));

     String fileString = "";
     //read from text file to update current information into program
     StringBuilder sb = new StringBuilder();
     while(in.hasNext()) {
       sb.append(in.next());
     }
     in.close();
     fileString = sb.toString();
     System.out.println(fileString);  
  }
}

我的文件包含以下文本:

姓名:霍华德

支票:0

节省:0

信用:0

使用 BufferedReader 之类的东西比使用 Scanner 的一个优点是,如果读取由于任何原因失败,您将得到一个异常。这是一件 好事 — 您想知道程序失败的时间和原因,而不必猜测。

扫描器没有抛出异常。相反,您必须手动检查:

if (in.ioException() != null) {
    throw in.ioException();
}

这样的检查可能属于程序接近尾声的地方,在 while 循环之后。这不会使您的程序运行,但它应该会告诉您出了什么问题,以便您解决问题。

当然,您还应该验证accountInfo.txt里面是否确实有一些文字。