I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been...
-
Upload
corey-osborne -
Category
Documents
-
view
220 -
download
0
description
Transcript of I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been...
![Page 1: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/1.jpg)
I/O Basics
May 3, 2023
![Page 2: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/2.jpg)
Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real applications of Java are not text-based, console programs.
they are graphically oriented programs that rely upon Java’s Abstract Window Toolkit (AWT) for interaction with the user.
Java’s support for console I/O is limited and somewhat awkward to use — even in simple example programs. Text-based console I/O is just not very important to Java programming.
May 3, 2023 2
![Page 3: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/3.jpg)
Streams Java programs perform I/O through streams. A stream is an abstraction that either produces or
consumes information. A stream is linked to a physical device by the Java
I/O system. All streams behave in the same manner, even if the
actual physical devices to which they are linked differ.
Same I/O classes and methods can be applied to any type of device.
May 3, 2023 3
![Page 4: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/4.jpg)
Streams(contd.) Input stream can abstract many different kinds of
input: from a disk file, a keyboard, or a network socket.
Output stream may refer to the console, a disk file, or a network connection.
Streams deal with input/output without having every part of your code understand the difference between a keyboard and a network.
Java implements streams within class hierarchies defined in the java.io package.
May 3, 2023 4
![Page 5: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/5.jpg)
Byte Streams and Character Streams Java 2 defines two types of streams: byte and character.
Byte streams provide means for handling input and output of bytes and are used for reading or writing binary data.
Character streams handle input and output of characters. They use Unicode and, therefore, can be internationalized.
In some cases, character streams are more efficient than byte streams.
At the lowest level, all I/O is byte-oriented
May 3, 2023 5
![Page 6: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/6.jpg)
The Byte Stream Classes Byte streams are defined by using two class
hierarchies. At the top are two abstract classes: InputStream and OutputStream.
Each of these abstract classes has several concrete subclasses, that handle the differences between various devices, such as disk files, network connections, and even memory buffers.
to use the stream classes, you must import java.io. The abstract classes InputStream and
OutputStream define several key methods that the other stream classes implement. Two of the most important are read( ) and write( ),
May 3, 2023 6
![Page 7: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/7.jpg)
which, respectively, read and write bytes of data. Both methods are declared as abstract inside InputStream and OutputStream.
They are overridden by derived stream classes.
The Character Stream Classes Character streams are defined by using two class
hierarchies. At the top are two abstract classes, Reader and
Writer, which define several key methods that the other stream classes implement.
May 3, 2023 7
![Page 8: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/8.jpg)
These abstract classes handle Unicode character streams.
Java has several concrete subclasses of each of these.
Two of the most important methods are read( ) and write( ), which read and write characters of data, respectively.
These methods are overridden by derived stream classes
First slide is Byte Stream classes Second slide is the character stream I/O classes
May 3, 2023 8
![Page 9: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/9.jpg)
May 3, 2023 9
![Page 10: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/10.jpg)
May 3, 2023 10
![Page 11: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/11.jpg)
The Predefined Streams java.lang package defines a class called System,
which encapsulates several aspects of the run-time environment.
Using some of its methods, you can do the settings of various properties associated with the system.
System also contains three predefined stream variables, in, out, and err.
These fields are declared as public, static and final within System.
They can be used by any other part of the program and without reference to a specific System object.
May 3, 2023 11
![Page 12: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/12.jpg)
System.out refers to the standard output stream. By default, this is the console.
System.in refers to standard input, which is the keyboard by default.
System.err refers to the standard error stream, which also is the console by default.
These streams may be redirected to any compatible I/O device.
System.in is an object of type InputStream System.out and System.err are objects of type
PrintStream. These are byte streams, used to read and write
characters from and to the console.May 3, 2023 12
![Page 13: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/13.jpg)
Reading Console Input Console input is accomplished by reading from
System.in. To obtain character-based stream that is attached to
the console, you wrap System.in in a BufferedReader object.
BuffereredReader supports a buffered input stream. Constructor is shown here:
BufferedReader(Reader inputReader)
May 3, 2023 13
![Page 14: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/14.jpg)
inputReader is the stream that is linked to the instance of BufferedReader that is being created.
Reader is an abstract class. One of its concrete subclasses is
InputStreamReader, which converts bytes to characters.
To obtain an InputStreamReader object that is linked to System.in, use the following constructor:
InputStreamReader(InputStream inputStream)
May 3, 2023 14
![Page 15: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/15.jpg)
System.in refers to an object of type InputStream, it can be used for inputStream.
The following line of code creates a BufferedReader that is connected to the keyboard:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
After this statement executes, br is a character-based stream that is linked to the console through System.in.
May 3, 2023 15
![Page 16: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/16.jpg)
Reading Characters To read a character from a BufferedReader, use
read( ). int read( ) throws IOException
It reads a character from the input stream and returns it as an integer value.
It returns –1 when the end of the stream is encountered. It can throw an IOException.
May 3, 2023 16
![Page 17: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/17.jpg)
// Use a BufferedReader to read characters from the console.import java.io.*;class BRRead {
public static void main(String args[]) throws IOException {char c;BufferedReader br = new
BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter characters, 'q' to quit.");// read charactersdo {
c = (char) br.read();System.out.println(c);
} while(c != 'q');}
}
May 3, 2023 17
![Page 18: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/18.jpg)
Enter characters, 'q' to quit.123abcq123abcq System.in is line buffered, by default. This means that no
input is actually passed to the program until you press ENTER.
May 3, 2023 18
![Page 19: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/19.jpg)
Reading Strings To read a string from the keyboard, use the version
of readLine( ) that is a member of the BufferedReader class.
Its general form is shown here: String readLine( ) throws IOException It returns a String object.
May 3, 2023 19
![Page 20: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/20.jpg)
//Read a string from console using a BufferedReaderimport java.io.*;class BRReadLines {
public static void main(String args[]) throws IOException {// create a BufferedReader using System.inBufferedReader br = new BufferedReader(new
InputStreamReader(System.in));String str;System.out.println("Enter lines of text.");System.out.println("Enter 'stop' to quit.");do {
str = br.readLine();System.out.println(str);
} while(!str.equals("stop"));}
}
May 3, 2023 20
![Page 21: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/21.jpg)
import java.io.*; //A tiny Editorclass TinyEdit {
public static void main(String args[]) throws IOException {// create a BufferedReader using System.inBufferedReader br = new BufferedReader(new
InputStreamReader(System.in));String str[] = new String[100];System.out.println("Enter lines of text.");System.out.println("Enter 'stop' to quit.");for(int i=0; i<100; i++) {
str[i] = br.readLine();if(str[i].equals("stop")) break;
}
May 3, 2023 21
![Page 22: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/22.jpg)
System.out.println("\nHere is your file:");// display the linesfor(int i=0; i<100; i++) {
if(str[i].equals("stop")) break;System.out.println(str[i]);
}}
}
May 3, 2023 22
![Page 23: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/23.jpg)
Here is a sample run:Enter lines of text.Enter 'stop' to quit.This is line one.This is line two.Just create String objects.stopHere is your file:This is line one.This is line two.Just create String objects
May 3, 2023 23
![Page 24: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/24.jpg)
Writing Console Output PrintStream is an output stream derived from
OutputStream, it implements the low-level method write( ).
write( ) can be used to write to the console:void write(int byteval)
This method writes to the stream the byte specified by byteval.
byteval is declared as an integer, only the low-order eight bits are written.
May 3, 2023 24
![Page 25: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/25.jpg)
class WriteDemo {public static void main(String args[]) {
int b;b = 'A';System.out.write(b);System.out.write('\n');
}}
Writes A to the console and adds a new line.
May 3, 2023 25
![Page 26: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/26.jpg)
Reading and Writing Files In Java, all files are byte-oriented FileInputStream and FileOutputStream create byte
streams linked to files To open a file, create an object of one of these classes,
specifying the name of the file as an argument to the constructor
FileInputStream (String fileName) throws FileNotFoundException
FileOutputStream (String fileName) throws FileNotFoundException
void close( ) throws IOExceptionint read( ) throws IOException
May 3, 2023 26
![Page 27: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/27.jpg)
/* Display a text file. Specify the name of the file that you want to see. For example, to see a file called TEST.TXT, use the following command line.java ShowFile TEST.TXT */
import java.io.*;class ShowFile {
public static void main(String args[]) throws IOException {int i;FileInputStream fin;
May 3, 2023 27
![Page 28: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/28.jpg)
try {fin = new FileInputStream(args[0]);} catch(FileNotFoundException e) {System.out.println("File Not Found");return;} catch(ArrayIndexOutOfBoundsException e) {System.out.println("Usage: ShowFile File");return;}// read characters until EOF is encountereddo {i = fin.read( );if(i != -1) System.out.print((char) i);} while(i != -1);fin.close( );}
}May 3, 2023 28
![Page 29: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/29.jpg)
To write to a file, use write( ) method defined by FileOutputStream.
void write(int byteval) throws IOException
/* Copy a text file. To use this program, specify the name of the source file and the destination file.For example, to copy a file called FIRST.TXT to a file called SECOND.TXT, use the following command line.java CopyFile FIRST.TXT SECOND.TXT
*/
May 3, 2023 29
![Page 30: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/30.jpg)
import java.io.*;class CopyFile {
public static void main(String args[]) throws IOException {int i;FileInputStream fin;FileOutputStream fout;try {
//open input filetry {
fin = new FileInputStream(args[0]);} catch(FileNotFoundException e) {
System.out.println("Input File Not Found");return;
}
May 3, 2023 30
![Page 31: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/31.jpg)
//open output filetry {
fout = new FileOutputStream(args[1]);} catch(FileNotFoundException e) {
System.out.println("Error Opening Output File");return;
}} catch(ArrayIndexOutOfBoundsException e) {
System.out.println("Usage: CopyFile From To");return;
}
May 3, 2023 31
![Page 32: I/O Basics 26 January 2016. Aside from print( ) and println( ), none of the I/O methods have been used significantly. The reason is simple: most real.](https://reader036.fdocuments.in/reader036/viewer/2022062401/5a4d1b047f8b9ab059987cc8/html5/thumbnails/32.jpg)
//Copy Filetry {do {i = fin.read( );if(i != -1) fout.write(i);} while(i != -1);} catch(IOException e) {System.out.println("File Error");}fin.close();fout.close();}
}
May 3, 2023 32