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里面是否确实有一些文字。
我正在尝试读取文件,但它无法正常工作。我在这里看了很多例子,我使用的方法是从对别人问题的回答中借来的。我知道您可以使用 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里面是否确实有一些文字。