为什么FileReader不是NetBeans中的类?

时间:2015-12-17 06:42:07

标签: java eclipse netbeans filereader

所以我今天刚刚切换到NetBeans,因为我的日食已经崩溃了数万亿次。但是,当我在学习阅读文件时,我似乎无法导入FileReader的课程。

当我尝试为FileReader导入某些内容时,它只是询问我是否要创建方法FileReader(java.io.File)。这只是Eclipse和Netbeans之间的区别吗?

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;



File file1 = new File("test.txt");

try(BufferedReader bf1 = new BufferedReader(FileReader(file1))){


}catch (IOException ex) {
       System.out.println("haha");
}

2 个答案:

答案 0 :(得分:4)

您根本没有导入它 - 您需要通配符导入:

import java.io.*;

或具体导入:

import java.io.FileReader;

如Titus所述,在使用new之前,您还缺少FileReader。这样:

try(BufferedReader bf1 = new BufferedReader(FileReader(file1))){

应该是:

try(BufferedReader bf1 = new BufferedReader(new FileReader(file1))){

现在你可能已经习惯了自动为你自动导入东西,而不是Netbeans - 查看你提到的类型的普通包(甚至所有包),并提供为你导入它。我不知道这里的Netbeans功能,但如果它有点不同,我也不会感到惊讶。

我还鼓励你无论如何都要避免使用FileReader - 它不允许你指定用于读取文件的编码。从Java 7开始,无论如何都有java.nio.Files中更方便的方法:

try (BufferedReader reader = Files.newBufferedReader(file1.toPath())) {
    ...
}

或者从Path

开始
Path file1 = Paths.of("test.txt");
try (BufferedReader reader = Files.newBufferedReader(path)) {
    ...
}

默认使用UTF-8,或者您可以根据需要指定编码。

答案 1 :(得分:3)

你在这里错过了两件事。首先,您必须导入该类:

import java.io.FileReader;

其次,FileReader是一个类,而不是一种方法 - 您错过了new运算符:

try (BufferedReader bf1 = new BufferedReader(new FileReader(file1))) {
    // Here ---------------------------------^
    // etc...