import java.util.Scanner; import java.io.*; public class DiskFileReadWrite { public static void main(String[] args) { // The "line.separator" is used when writing 'newline' characters to // disk text files, since using "\n" will not always cause lines to // appear on new lines; for example, if using "\n", the files will // look okay when displayed through a DOS prompt or with WordPad, // but they will not look okay when viewed with Windows Notepad final String NL = System.getProperty("line.separator"); String diskFile1 = "DemoFile1.txt"; String diskFile2 = "DemoFile2.txt"; String diskFile3 = "DemoFile3.txt"; String line; int data; try { // Create a 'FileWriter' object FileWriter output1 = new FileWriter(diskFile1); output1.write("One" + NL); // Must manually write a 'newline' character output1.write("first", 0, 2); // Writes the first two characters ("fi") output1.close(); // Output will not be written until the file is closed // Create a 'BufferedWriter' object from a 'FileWriter' object BufferedWriter output2 = new BufferedWriter(new FileWriter(diskFile2)); output2.write("Two" + NL); // Must manually write a 'newline' character output2.write("second", 0, 3); // Writes the first three characters ("sec") output2.close(); // Output will not be written until the file is closed // Create a 'PrintWriter' object from a 'BufferedWriter' object from a 'FileWriter' object PrintWriter output3 = new PrintWriter(new BufferedWriter(new FileWriter(diskFile3))); output3.println("Three"); // Automatically writes a 'newline' character output3.write("third", 1, 2); // Writes the 2nd and 3rd characters ("hi") output3.close(); // Output will not be written until the file is closed // Create a 'FileReader' object to read from 'diskFile1'; a "-1" means 'end of file' FileReader input1 = new FileReader(diskFile1); data = input1.read(); // Reads the ASCII value of the first character ("O" = 79) System.out.println("From file #1, line #1: " + data); data = input1.read(); // Read the ASCII value of the next character ("n" = 110) System.out.println("From file #1, line #2: " + data + "\n"); input1.close(); // Two approaches to creating a 'BufferedReader' object for reading from 'diskFile2' //BufferedReader input2 = new BufferedReader(new FileReader(new File(diskFile2))); BufferedReader input2 = new BufferedReader(new FileReader(diskFile2)); line = input2.readLine(); System.out.println("From file #2, line #1: " + line); line = input2.readLine(); System.out.println("From file #2, line #2: " + line + "\n"); input2.close(); // Three approaches to creating a 'Scanner' object for reading from 'diskFile3' //Scanner input3 = new Scanner(new FileReader(new File(diskFile3))); //Scanner input3 = new Scanner(new FileReader(diskFile3)); Scanner input3 = new Scanner(new File(diskFile3)); line = input3.nextLine(); System.out.println("From file #3, line #1: " + line); line = input3.nextLine(); System.out.println("From file #3, line #2: " + line); input3.close(); } catch (Exception error) { System.out.println("ERROR: " + error.getMessage()); } } }