In this lab we learn about streams. Stream is
a sequence if data that is read or written from beginning to end. Depending on
if the data is read or written, it is called an InputStream or OutputStream.
1.
Create a new project.
2.
Create a new directory called “files” in the root folder.
3.
Download the following file and copy to the files directory: https://docs.oracle.com/javase/tutorial/essential/io/examples/xanadu.txt
FileReader,
Try-with-resource statement, AutoClose interface.
4.
Create an input stream to read a text file in your computer.
FileReader fRead = new
FileReader(“xanadu.txt”);
5.
You will have to surround the about line with try-with-resources
statement. This closes fileReader in case of an exception. Take a look at the AutoClose Interface.
6.
Add a catch block to catch IO exception.
7.
Output the first character to the console using the following code
within try block:
fRead.read();
8.
Notice that read writing one character at a time so it returns the
Unicode value of the first character. You can see the character by casting it
into char.
BufferedReader
class
9.
Let’s read one line at a time, to do this create an instance of
BufferedReader
BufferedReader bRead= new
BufferedReader(fRead);
10.
Output the first line to the console using the following code within try
block:
bRead.readLine();
11. If you call the code again it
reads the next line of the file and if there are no more lines to read a null
is returned. Using this information let’s output the entire file into
the console using a while loop.
FileWriter
12.
Let’s copy the files from Xanadu.txt to a new text file called
NewXanadu.txt. Create a FileWriter instance as a try-with-resources statement.
FileWriter fWrite = new
FileWriter(targetFile);
13.
Using fWrite.write() to write to the file instead of writing to console.
Run the application and check of the file has been created.
Using
Path Interface, Paths and Files classes to copy files
14.
Let’ use a much simpler way to copy the Xanadu.txt file to another file
called newerXanadu.txt using Path Interface.
Path sourceFile = Paths.get("files",
"xanadu.txt");
Path targetFile = Paths.get("files",
"newXanadu.txt");
15.
Now use the following state inside a try catch block to copy the file.
We are using copy method of the file class to do this. Notice that we are
providing the StandardCopyOption to replace any existing file with the same
name.
Files.copy(sourceFile, targetFile,
StandardCopyOption.REPLACE_EXISTING);
System.out.println(“File Copied”);
16.
Add code to copy the Xanadu.txt file again giving a new name
Xanadu2.txt. You will need a new Path object to do this.
17.
Add code to delete the Xanadu2.txt file. Use the following code.
Files.delete(delFilePath);
System.out.println(“File deleted”);
18.
Add code to Create a new directory under files folder called tempDir
using createDirectory method of the file class. You will need a path object to
do this.
19.
Add code to move the newXanadu.txt file to the tempDir. Use the
following code. p1 is the path for the file you are moving. p2 is the path of
the new directory.
Files.move(p1,p2.resolve(p1.getFileName()),StandardCopyOption.REPLACE_EXISTING);
20.
(Optional) Add code to read each line of the xanadu.txt file to a String
ArrayList. Write the content of the array list to the console. Then write the
content of the array list to a new text file.
21.
(Optional) Remove any Try-with-Resource block and check the file output.
Now add finally block to close all the open resources. Check the file output
again.
Comments
Post a Comment