Avoid creating FileStream directly
ID: java-best-practices/avoid-filestream
Language: Java
Severity: Info
Category: Best Practices
Description
The classes that creates FileInputStream
and FileOutputStream
triggers too much garbage collection. Instead, use methods from the nio
package that cause less garbage collection.
Learn More
Non-Compliant Code Examples
class Main {
public static void main(String[] args) {
String filename = "/path/to/file.txt";
FileInputStream fis = new FileInputStream(filename);
FileOutputStream fos = new FileOutputStream(filename);
FileReader fr = new FileReader(filename);
FileWriter fw = new FileWriter(filename);
String s = new String("woeijf");
}
}
Compliant Code Examples
class Main {
public static void main(String[] args) {
String filename = "/path/to/file.txt";
try(InputStream is = Files.newInputStream(Paths.get(filename))) {
}
try(OutputStream os = Files.newOutputStream(Paths.get(filename))) {
}
try(BufferedReader br = Files.newBufferedReader(Paths.get(filename), StandardCharsets.UTF_8)) {
}
try(BufferedWriter wr = Files.newBufferedWriter(Paths.get(filename), StandardCharsets.UTF_8)) {
}
}
}