IO Java
CST200 – Week 1: Basic Reading and Writing in Java
Instructor: Andreea Molnar
Outline
•Aims
•Writing to the display
•Reading from the keyboard
Introduction
•Input/Ouput (IO) operations in Java are more complex than described here.
•You will need the information presented here to complete your assignments and for the exams
Writing
• System.out.println() –prints a new line
• System.out.println(“Hello World”); – prints Hello World and then moves to the new line
WritingYou can have an expression to be printed. Check the definition of an expression!!!
System.out.println(3+7+8);
//prints 18 and then moves to a new line
System.out.println(“My student ID is “ + 3456E);
//prints My student ID is 3456E
Writing
int ID = 3456;
System.out.println(“My student ID is “ + ID);
//prints My student ID is 3456
Writing
String firstName = “Andreea”;
String lastName = “Molnar”;
System.out.println(firstName + lastName);
//prints AndreeaMolnar
Writing
String firstName = “Andreea”;
String lastName = “Molnar”;
System.out.println(firstName + “ “ + lastName);
//prints Andreea Molnar
Writing
String firstName = “Andreea”;
String lastName = “Molnar”;
System.out.println(firstName.charAt(0) + “ “ + lastName.substring(1, 3));
//prints A ol
Writing
String firstName = “Andreea”;
String lastName = “Molnar”;
System.out.println(firstName.charAt(0) + “ “ + lastName.substring(1, 3));
//prints A olIf you do not understand how the above output is generated check the String API, Introduction to Java.ppt or Annex 1 at the end of this presentation. If any of these do not work for you, please ask.
Writing
System.out.println(firstName + “\n" + lastName);
//will print:
//Andreea
//Molnar
Escape sequence
Meaning
\b backspace
\t tab
\n newline
\r return
\’’ double quote
\’ single quote
\\ backslash
You can use escape sequences.
Writing
• System.out.println(“Hello World”); – prints Hello World and then moves to the new line
• System.out.print(“Hello World”); - does the same thing as System.out.println but it does not move to a new line
Writing
System.out.println(“Hello World”);
System.out.println(“I am here”);
System.out.print(“Hello World”);
System.out.print(“I am here”);
Reading
This section will provide you with an example on how to read from the keyboard using BufferedReader.
You should find attached under this presentation the code used.
Reading
You will need to import the following classes, in order to make use of them.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
You may want to look again over JavaClassLibrary video from pluralsight. I have added a few more explanations on Annex 2.
Reading
Change the main method to throw an exception:
public static void main(String[] args) throws IOException {
}
Exception handling is also not covered by this course. You can find more details at: http://pluralsight.com/training/Courses/TableOfContents/java2
Reading
Change the main method to throw an exception:
public static void main(String[] args) throws IOException {
}
Exception handling are also not covered by this course. You can find more details at: http://pluralsight.com/training/Courses/TableOfContents/java2
ReadingUse BufferedReader for reading lines of text from standard input (i.e. keyboard)
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();
//reads a line of text as a String
IO in Java is not covered in details in this course, and this example is provided just to help you write algorithms (check the definition of an algorithm) http://pluralsight.com/training/Courses/TableOfContents/java2
Reading
Use the Integer and Double static functions to convert a number from a String to an Integer (int) or Double (double).
You may want to check again the video about boxing and unboxing:
http://pluralsight.com/training/Courses/TableOfContents/java1
ReadingTo convert a String to an Integer you can use: Integer.parseInt(String s);
int number = Integer.parseInt(“23”);
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html
ReadingTo convert a String to a Double you can use: Integer.parseInt(String s);
int number = Integer.parseInt(“23”);
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html
Reading
To convert a String to a Double you can use: Double.parseDouble(String s);
double number = Double.parseDouble (“23”);
http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html
Reading
If you want to read multiple numbers or strings on the same line, you can use regular expressions to extract the numbers.
ReadingString line = reader.readLine();
//assuming that the read line provides strings or numbers or characters separated by space
String [] input = line.split(“\\ “);
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)
Reading
//+ is used as a separator
String [] line = line.split(“\\+“);
//* is used as a separator
String [] line = line.split(“\\*“);
Reading
String line = reader.readLine();
//assuming that the user introduces the following string: “my first program”, the line variable will contain the value my first program
Check the definition of variable if you do not know it !!!
My first program
line
Reading
String line = reader.readLine();
String [] input = line.split(“\\ “);
First value in an array starts at index 0!!!
my first program
line
my first program
0 1 2input
index
Reading
String line = reader.readLine();
String [] input = line.split(“\\ “);
String firstString = input[0];
my first program
line
my first program
0 1 2inputindex
my
firstString
Reading
String line = reader.readLine();
String [] input = line.split(“\\ “);
String secondString= input[1];
my first program
line
my first program
0 1 2input
indexfirstsecondString
Reading
String line = reader.readLine();
String [] input = line.split(“\\ “);
String thirdString= input[2];
my first program
line
my first program
0 1 2input
indexprogramthirdString
Reading
String line = reader.readLine();
//assuming now that the user introduces the following string: “45*90*78”
String [] input = line.split(“\\*“);
45*90*78
line
45 90 78
0 1 2input
index
Reading
String line = reader.readLine();
String [] input = line.split(“\\*“);
int no1 = Integer.parseInt(input[0]);
Although input looks like it contains numbers, the numbers are in fact represented as strings, therefore they need to be converted to int.
45*90*78
line
45 90 78
0 1 2input
index
Reading
String line = reader.readLine();
String [] input = line.split(“\\*“);
int no1 = Integer.parseInt(input[0]);
45*90*78
line
45 90 78
0 1 2input
index45no1
Reading
String line = reader.readLine();
String [] input = line.split(“\\*“);
int no1 = Integer.parseInt(input[0]);
45*90*78
line
45 90 78
0 1 2input
index90no2
Reading
String line = reader.readLine();
String [] input = line.split(“\\*“);
int no1 = Integer.parseInt(input[0]);
45*90*78
line
45 90 78
0 1 2input
index78no3
Summary
•Writing: use System.out.println() and System.out.print();
•Reading: use BufferedReader class
Annex 1
String firstName = “Andreea”;
char firstCharacter= firstName.charAt(0);
A n d r e e a
0 1 2 3 4 5 6
index
Annex 1
String firstName = “Andreea”;
char firstCharacter= firstName.charAt(0);
char secondCharacter = firstName.charAt(1);
char thirdCharacter = firstName.charAt(2);
char fourthCharacter = firstName.charAt(3);
//…
A n d r e e a
0 1 2 3 4 5 6
index
Annex 1
System.out.println(firstCharacter);
//will print A
System.out.println(secondCharacter);
//will print n
A n d r e e a
0 1 2 3 4 5 6
index
Annex 1
String lastName = “Molnar”;
String subString= lastName.substring(1, 3));
M o l n a r
0 1 2 3 4 5
index
Annex 1
String lastName = “Molnar”;
String subString= lastName.substring(1, 3));
System.out.println(lastName);
//will print oln
M o l n a r
0 1 2 3 4 5
Annex 2
• When you use an already implemented class from Java framework, you are basically using a class from a package.
• java.lang package is automatically imported this is why for the HelloWorld program you didn’t need to import anything.
• To import an entire package you can write import package.*. For example: import java.util.*;
Annex 2
• Importing a package allows you to use the class from a library without fully using its fully qualified name. For example in case of BufferedReader, without importing java.io.BufferedReader you would have to write:
java.io.BufferedReader reader = new java.io.BufferedReader (…);
http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html