So I just switched to NetBeans today because my eclipse had been crashing for a bizillion times. However when I am learning something on reading files, I can't seem to import the class for FileReader
.
When I try to import something for FileReader
, it just asks me if I want to create method FileReader(java.io.File)
. Is this just a difference between Eclipse and 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");
}
You simply haven't imported it - you either need a wildcard import:
import java.io.*;
or the specific import:
import java.io.FileReader;
As noted by Titus, you're also missing a new
before you use FileReader
. This:
try(BufferedReader bf1 = new BufferedReader(FileReader(file1))){
should be:
try(BufferedReader bf1 = new BufferedReader(new FileReader(file1))){
Now it's possible that you're used to Eclipse importing things automatically for you more than Netbeans - looking in common packages (or even all packages) for the type that you mention, and offering to import it for you. I don't know about the Netbeans functionality here, but it wouldn't surprise me if it's a little different.
I'd also encourage you to avoid FileReader
anyway - it doesn't let you specify the encoding used to read the file. As of Java 7 there's a more convenient method in java.nio.Files
anyway:
try (BufferedReader reader = Files.newBufferedReader(file1.toPath())) {
...
}
Or start off with a Path
:
Path file1 = Paths.of("test.txt");
try (BufferedReader reader = Files.newBufferedReader(path)) {
...
}
This will use UTF-8 by default, or you can specify an encoding if you wish.
See more on this question at Stackoverflow