Transcript Document

Input and Output in Java
Monday, February 10, 2014
Nancy L. Harris
+
Reference for this topic

Java Tutorials I/O
CS239 – Spring 2012
1/20/2012
+
Pictorial view of data streams (from
the Java tutorial)
+
What can we read and write?

Bytes – used for binary data, sounds, pictures

Characters – used for textual data

We will focus on character data
+
What does a “stream” look like

It is not organized as we are used to looking at a “file”.

It is conceptually an infinitely long series of bytes.

Some readers deal with those bytes as text characters.

And each format item (new lines, tabs, spaces) have a
corresponding character representation.
+
What’s a file?



A “file” can be thought of as a named bunch of
data.
That data can be binary (like executable
programs) or it can be textual (like the source
files you make with JGrasp).
Text files are still binary, but their data can be
directly interpreted as characters from the
Unicode character set.
+
Processing a file


To read from a file

Open the file

Read its data

Close the file
To write to a file

Open the file

Write its data

Close the file
+
Java classes (note: there are other classes that deal
with file IO, but these will serve our purposes in 159)


Input

File class

Scanner class
Output

File class

PrintWriter class
File: “An abstract representation of file and directory pathnames.” (java api)
Instantiating a File does not “open” the file nor automatically check its
existence.
Instantiating a Scanner or PrintWriter object does open the underlying file.
FileNotFoundException if the file cannot be found or opened.
CS239 – Spring 2011 8
1/20/2011
+
Making a copy of a file
Involves reading from a source and writing to a target.
Demo
Note:
File I/O requires the handling of “checked” exceptions.
These exceptions must be handled or re-thrown.
Addi
sonWes
ley.
All
right
s
rese
rved
.
+ Exception Classes
Object
Throwable
Error
…
Exception
…
IOException
RuntimeException
…
EOFException
FileNotFoundException
…
Chapter 12
Slide #10
Starting
Out With
+
A note about whitespace

Scanner automatically uses “whitespace” to parse input.

We can force it to use something else by the useDelimiter()
method.

Scanner can process:

standard input (System.in)

files

lines of text

Its process of reading individual elements is also called
parsing or tokenizing.
CS239 – Spring 2011 11
+
What is EOF

EOF stands for End Of File and lets the input processor know
that we have no more data.

Scanner’s hasNext method returns true if we have not yet
reached EOF. False means we have reached the end of the
file.

You might see EOF in submit when there is more output
expected, but your file ends or vice versa.
1/20/2011
+
Today’s Lab

You will build a “main” to read data from a file and use it to
build a TextAnalyzer object. You will then call the
TextAnalyzer methods to analyze the text you have read in.

The text may have multiple lines. You should read in all lines
and build a String that you can send to the TextAnalyzer. To
preserve the new lines in the original text, you will need to
add them back in as you build the String.

See solution posted to Canvas if you do not have a
TextAnalyzer class that you can use.
1/20/2011