是否可以仅使用FileReader从文件中读取?

Aik*_*áro 1 java filereader

我知道正确的方法是

BufferedReader br = new BufferedReader(FileReader(file));
Run Code Online (Sandbox Code Playgroud)

但是我在Java API中检查了FileReader类的方法,并且它有一个read()返回字符读取的方法.但这对我不起作用.我正在读取包含这行文本的文件:"我正在读取文件",并将其打印到屏幕上,但是当我运行程序时,它会为每个字符打印等效的ASCII代码.

这是我的代码:

String lectura = "";
try{
    lectura = String.valueOf(fr.read());
} catch(IOException ioex){
    ioex.printStackTrace();
}

while((Integer.parseInt(lectura)) != -1){
    System.out.print(lectura);
    try{
        lectura = String.valueOf(fr.read());
    } catch(IOException ioex){
        ioex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*lue 5

这是怎么回事 -

fr.read()返回一个整数而不是一个字符,尽管返回的整数是该字符的等效ASCII代码.

当您对该整数调用String.valueOf()时,将调用String.valueOf(int i)方法,而不是您期望调用的String.valueOf(char c)方法,因此它返回ASCII值作为字符串,而不是字符值作为字符串.

所以相反,试试吧

    lectura = String.valueOf( (char) (fr.read()) );
Run Code Online (Sandbox Code Playgroud)