所以我今天刚刚切换到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");
}
答案 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...