BufferedWriter
(using BufferedWriter.write()
) after closing the BufferedWriter
(using BufferedWriter.close()
), it will throw an IOException
.BufferedWriter(Writer)
constructor does NOT throw an IOException
. However, the FileWriter(File)
constructor throws a FileNotFoundException
, which extends IOException
. So catching IOException
will also catch FileNotFoundException
, there is never a need for a second catch statement unless you plan on doing something different with the FileNotFoundException
.This code writes the string to a file. It is important to close the writer, so this is done in a finally
block.
public void writeLineToFile(String str) throws IOException {
File file = new File("file.txt");
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file));
bw.write(str);
} finally {
if (bw != null) {
bw.close();
}
}
}
Also note that write(String s)
does not place newline character after string has been written. To put it use newLine()
method.
Java 7 adds the java.nio.file
package, and try-with-resources:
public void writeLineToFile(String str) throws IOException {
Path path = Paths.get("file.txt");
try (BufferedWriter bw = Files.newBufferedWriter(path)) {
bw.write(str);
}
}