Java 为什么FileReader不是NetBeans中的一个类?

Java 为什么FileReader不是NetBeans中的一个类?,java,eclipse,netbeans,filereader,Java,Eclipse,Netbeans,Filereader,所以我今天就切换到了NetBeans,因为我的eclipse已经崩溃了数亿次。但是,当我在学习阅读文件时,我似乎无法为FileReader导入类 当我尝试为FileReader导入某些内容时,它只会询问我是否要创建FileReader(java.io.File)方法。这只是Eclipse和Netbeans之间的区别吗 import java.io.BufferedReader; import java.io.File; import java.io.IOException; File fi

所以我今天就切换到了NetBeans,因为我的eclipse已经崩溃了数亿次。但是,当我在学习阅读文件时,我似乎无法为
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");
}

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

import java.io.*;
或具体进口:

import java.io.FileReader;
正如提图斯所指出的,在使用
FileReader
之前,您还缺少一个
new
。这:

try(BufferedReader bf1 = new BufferedReader(FileReader(file1))){
应该是:

try(BufferedReader bf1 = new BufferedReader(new FileReader(file1))){
现在,您可能已经习惯于Eclipse为您自动导入东西,而不是Netbeans—查找您提到的类型的通用包(甚至所有包),并提供为您导入它。我不知道这里的Netbeans功能,但如果它有点不同,我也不会感到惊讶

我还建议您避免使用
FileReader
,因为它不允许您指定用于读取文件的编码。在Java 7中,有一种更方便的方法:

或者从路径开始:

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

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

这里缺少两件事。首先,必须导入该类:

import java.io.FileReader;
其次,
FileReader
是一个类,而不是一个方法-您缺少了
new
操作符:

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

您缺少了
新的
,它应该是
新文件阅读器(file1)
。我有一个疑问。我使用eclipse,它建议我在必要时导入一个包。netbeans没有显示这样的建议吗???@MathewsMathai:正如我所说,我不知道这里的功能——如果不同的选项也会影响它,我也不会感到惊讶。@JonSkeet我现在觉得自己太愚蠢了!谢谢你的解释,这些解释远远不止!!
try (BufferedReader bf1 = new BufferedReader(new FileReader(file1))) {
    // Here ---------------------------------^
    // etc...