Top Banner

of 32

MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

Apr 05, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    1/32

    Introduction to Programming 2 1

    5 Text-Based Applications

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    2/32

    Introduction to Programming 2 2

    Topics

    Command-Line Arguments and System Properties

    Reading from Standard Input

    File Handling

    Reading from a File

    Writing to a File

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    3/32

    Introduction to Programming 2 3

    Command-Line Arguments

    Java allows user to input data from the command line

    Purpose of declaring String args[]as a parameter in the mainmethod

    When using thejava command, specifying data after the class nameindicates you are passing data via the args parameter

    Example:

    java Calculate 1 2

    args[0]has the value 1

    args[1]has the value 2

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    4/32

    Introduction to Programming 2 4

    Command-Line Arguments:Using NetBeans

    Right click on project icon/name on Projects panel Select Properties from the drop-down menu

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    5/32

    Introduction to Programming 2 5

    Command-Line Arguments:Using NetBeans

    Click on Run from Categories panel

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    6/32

    Introduction to Programming 2 6

    Command-Line Arguments:Using NetBeans

    Enter arguments in the Arguments field & click on the OKbutton

    Compile and run program as usual

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    7/32

    Introduction to Programming 2 7

    System Properties

    Java also also allows you to manipulate system propertiesfrom the command line

    System property Quite similar to environment variables

    But is not platform-dependent

    Property Mapping between the property name to its corresponding value

    Represented in Java with the Properties class.

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    8/32

    Introduction to Programming 2 8

    System Properties

    System class

    Provides a methods for determining the current system properties,the getProperties method that returns a Properties object

    Also provides the overloaded getPropertymethod

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    9/32

    Introduction to Programming 2 9

    System Properties

    Including a new property

    Use the -D option with thejava command

    java -D=value

    Example:java -Duser.home=philippines

    Display the list of system properties

    Use the getProperties methodSystem.getProperties().list(System.out);

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    10/32

    Introduction to Programming 2 10

    System Properties

    Truncated sample list of system properties

    -- listing properties --

    java.runtime.name=Java(TM) 2 Runtime Environment,Stand...

    sun.boot.library.path=C:\ProgramFiles\Java\jdk1.5.0_06\jre...

    java.vm.version=1.5.0_06-b05

    java.vm.vendor=Sun Microsystems Inc.

    java.vendor.url=http://java.sun.com/path.separator=;

    java.vm.name=Java HotSpot(TM) Client VM

    file.encoding.pkg=sun.io

    user.country=US

    ...

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    11/32

    Introduction to Programming 2 11

    Reading from Standard Input:

    Streams Can use streams to read from standard input

    Stream

    Abstraction of a file or a device that allows a series of items to beread or written

    Connected to physical devices

    Two general kinds of streams:

    Character streams

    Byte streams

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    12/32

    Introduction to Programming 2 12

    Reading from Standard Input:

    Streams Character Streams For Unicode characters

    Byte Streams For binary data

    Predefined examples

    System.in (keyboard by default)

    System.out(console by default)

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    13/32

    Introduction to Programming 2 13

    Reading from Standard Input:BufferedReader

    Reading characters from the keyboard

    Use the System.in byte stream warped in a BufferedReaderobject

    BufferedReader br = new BufferedReader(newInputStreamReader(System.in));

    Use readmethod of the BufferedReaderobject

    ch = (int) br.read();

    //read method returns an integer

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    14/32

    Introduction to Programming 2 14

    Reading from Standard Input:BufferedReaderExample

    1 import java.io.*;2 class FavoriteCharacter {

    3 public static void main(String args[])

    4 throws IOException {

    5

    System.out.println("Hi, what's your favorite6 character?");

    7 char favChar;

    8 BufferedReader br = new BufferedReader(new

    9 InputStreamReader(System.in));

    10 favChar = (char) br.read();

    11 System.out.println(favChar +

    12 " is a good choice!");

    13 }

    14 }

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    15/32

    Introduction to Programming 2 15

    Reading from Standard Input:BufferedReaderExample

    Output:

    Hi, what's your favorite character?

    a

    a is a good choice!

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    16/32

    Introduction to Programming 2 16

    Reading from Standard Input:BufferedReader

    Reading an entire line

    Use the System.in byte stream warped in a BufferedReaderobject

    BufferedReader br = new BufferedReader(newInputStreamReader(System.in));

    Use the readLine method

    str = br.readLine();

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    17/32

    Introduction to Programming 2 17

    Reading from Standard Input:BufferedReaderExample

    1 import java.io.*;

    2 class GreetUser {

    3 public static void main(String args[])

    4 throws IOException {

    5 System.out.println("Hi, what's your name?");

    6 String name;

    7 BufferedReader br = new BufferedReader(new

    8 InputStreamReader(System.in));

    9 name = br.readLine();

    1 System.out.println("Nice to meet you, " +

    2 name + "! :)");

    3 }

    4 }

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    18/32

    Introduction to Programming 2 18

    Reading from Standard Input:BufferedReaderExample

    Output:

    Hi, what's your name?rebecca

    Nice to meet you, rebecca! :)

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    19/32

    Introduction to Programming 2 19

    Reading from Standard Input:

    Reminders Don't forget to import thejava.io package as shown below:import java.io.*;

    Reading from streams may cause checked exceptions tooccur

    Handle these exceptions using try-catch statements

    Or handle by indicating the exception in the throws clause of themethod

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    20/32

    Introduction to Programming 2 20

    File Handling:

    Reading from a File Can use the FileInputStream class One of the constructors of this class

    FileInputStream(String filename)

    Creates a connection to an actual file whose filename is specified asan argument

    A FileNotFoundException is thrown when the file does not exist or itcannot be opened for reading

    Using the read method Returns an integer representation of data read

    Returns -1 when the end of the file is reached

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    21/32

    Introduction to Programming 2 21

    File Handling:Reading from a File

    1 import java.io.*;

    2 class ReadFile {

    3 public static void main(String args[])

    4 throws IOException {

    5 System.out.println("What is the name of the6 file to read from?");

    7 String filename;

    8 BufferedReader br = new BufferedReader(new

    9

    InputStreamReader(System.in));10 filename = br.readLine();

    11 System.out.println("Now reading from " +

    12 filename + "...");

    13 //continued...

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    22/32

    Introduction to Programming 2 22

    File Handling:Reading from a File

    14 FileInputStream fis = null;

    15 try {

    16 fis = new FileInputStream(filename);

    17 } catch (FileNotFoundException ex) {

    18 System.out.println("File not found.");19 }

    20 try {

    21 char data;

    22

    int temp;23 //continued...

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    23/32

    Introduction to Programming 2 23

    File Handling:Reading from a File

    Output:

    What is the name of the file to read from?

    temp.txt

    Now reading from temp.txt...

    temporary file

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    24/32

    Introduction to Programming 2 24

    File Handling:

    Writing to a File Can use the FileOutputStream class One of the constructors of this class

    FileOutputStream(String filename)

    Links an output stream to an actual file to write to A FileNotFoundException is thrown when the file cannot be opened

    for writing

    Using the write method

    void write(int b)

    where,

    b refers to the data to be written to the actual file

    File Handling:

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    25/32

    Introduction to Programming 2 25

    File Handling:Writing to a File

    1 import java.io.*;2 class WriteFile {

    3 public static void main(String args[])

    4 throws IOException {

    5 System.out.println("What is the name of the6 file to be written to?");

    7 String filename;

    8 BufferedReader br = new BufferedReader(new

    9 InputStreamReader(System.in));

    10 filename = br.readLine();

    11 System.out.println("Enter data to write to " +

    12 filename + "...");

    13 //continued...

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    26/32

    Introduction to Programming 2 26

    File Handling:Writing to a File

    14 System.out.println("Type q$ to end.");

    15 FileOutputStream fos = null;

    16 try {

    17 fos = new FileOutputStream(filename);

    18 } catch (FileNotFoundException ex) {

    19 System.out.println("File cannot be opened

    20 for writing.");

    21 }

    22 try {

    23 boolean done = false;

    24 int data;

    25 //continued...

    File Handling:

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    27/32

    Introduction to Programming 2 27

    File Handling:Writing to a File

    26 do {

    27 data = br.read();

    28 if ((char)data == 'q') {

    29 data = br.read();

    30 if ((char)data == '$') {31 done = true;

    32 } else {

    33 fos.write('q');

    34 fos.write(data);

    35 }

    36 } else {

    37 fos.write(data);

    38 //continued...

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    28/32

    Introduction to Programming 2 28

    File Handling:Writing to a File

    39 }

    40 } while (!done);

    41 } catch (IOException ex) {

    42 System.out.println("Problem in reading from

    43 the file.");

    44 }

    45 }

    46 }

    Fil H dli

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    29/32

    Introduction to Programming 2 29

    File Handling:Writing to a File

    Output:

    What is the name of the file to be writtento?

    temp.txt

    Enter data to write to temp.txt...

    Type q$ to end.

    what a wonderful world1, 2, step

    q$

    Fil H dli

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    30/32

    Introduction to Programming 2 30

    File Handling:Writing to a File

    Content oftemp.txtafter sample run

    what a wonderful world

    1, 2, step

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    31/32

    Introduction to Programming 2 31

    Summary

    Command-Line Arguments and System Properties

    Getting input from the command line

    Manipulating system properties

    java -D=

    Reading from Standard Input

    Use System.in

    Use BufferedReader Use readmethod

  • 7/31/2019 MELJUN CORTES JEDI Slides Intro2 Chapter05 Text Based Applications

    32/32

    Introduction to Programming 2 32

    Summary

    File Handling

    Reading from a File

    Use FileInputStream

    Use readmethod

    Writing to a File

    Use FileOutputStream

    Use write method