File Reading/Writing

Read a file:

try { BufferedReader myReader = new BufferedReader( new FileReader("myFolder\\myFile.txt") ); String line1 = myReader.readLine(); String line2 = myReader.readLine(); myReader.close(); } catch (IOException e) { // Handle this }

- If no folder is specified in the file path, it will look for the file in the folder that this code file is in

- Every time the readLine function is called, it will read the next line

- A file should be closed after it is opened for reading/writing

Using try-with-resources (to ensure the file gets closed)

try ( BufferedReader myReader = new BufferedReader( new FileReader("myFolder\\myFile.txt") ) ) { String line1 = myReader.readLine(); } catch (IOException e) { // Handle this }

- You have to set up the reader/writer in the parenthesis after 'try'

- You don't have to close the file afterwards, it will be done automatically

- This is safer, because it ensures that the file gets closed, even if an error occurs

- You can have more resources within the parenthesis, separate them with semicolons

Read all lines of the file:

try (BufferedReader myReader = new BufferedReader( new FileReader("myFolder\\myFile.txt") ) ) { String line; while ( (line = myReader.readLine()) != null ) { System.out.println( line ); } } catch (IOException e) { // Handle this }

- The loop stops when it fails to read another line

Write to a file:

try (BufferedWriter myWriter = new BufferedWriter(new FileWriter("myFolder\\myFile.txt")) ) { myWriter.write("testing 123\n"); } catch (IOException e) { // Handle this }

- This will create a new file if one of that name doesn't already exist

- If it already exists, it will overwrite it

Append to a file:

try (BufferedWriter myWriter = new BufferedWriter(new FileWriter("myFolder\\myFile.txt", true)) ) { myWriter.write("testing 456\n"); } catch (IOException e) { // Handle this }

- This will add to the existing contents of a file

- The only code difference is the "true" added as an optional parameter when creating the FileWriter

Challenge

Write code that will write a file that stores a list of names, append a name to that file, then read the file and display its contents.

Quiz

Completed