COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

Size: px
Start display at page:

Download "COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand"

Transcription

1 COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

2 COSC 236 Web Site You will always find the course material at: or or From this site you can click on the COSC-236 tab to download the PowerPoint lectures, the Quiz solutions and the Laboratory assignments. 2

3 3

4 Review of Quiz 15 Quiz 15: This Quiz is aimed at using random numbers and printing out a list separated by commas using the fencepost algorithm discussed in Lecture 14. Write a complete program (class) that asks the user how many random numbers the user wants printed and then prints on a single line that number of random numbers. The random numbers will be integers in the range 2 through 12 inclusive. Each random number is separated by a comma and a space. Here is what typical output from your program will look like: NOTE: There should be no extra commas or spaces at the beginning or at the end of the list. 4

5 Review of Quiz 15 There are two issues addressed in Quiz 15: First is generating random integers between 2 and 12 inclusively The range is max min + 1 = = 11 The minimum number is 2 rand.nextint(11) + 2 The second is the fence-post algorithm to print out the random numbers with commas between each number Print one random number before the for loop and leading commas in the for loop Print following commas in the for loop and one random number after the for loop 5

6 Review of Quiz 15 import java.util.*; // for Scanner Boiler Plate public class Quiz15 { public static void main(string[] args) { Random rand = new Random(); Set up random numbers Scanner console = new Scanner(System.in); Set up scanner for input System.out.print("How many random numbers would you like? "); int number = console.nextint(); System.out.print(rand.nextInt(11) + 2); for (int n = 1; n <= number; n++) { System.out.print(", " + (rand.nextint(11) +2)); System.out.println(); Prompt and get input Print first fence post Print line of number preceded by comma and space Use println to go to next line at end of program 6

7 Review of Quiz 15 QUESTION about the random numbers generated in Quiz 15: Would these number represent the throw of two dice? The range is correct: min = 2, max = 12 The numbers are random Does rand.nextint(11) + 2 simulate the roll of two dice? NO: The numbers 2 through 12 are not equally likely! 7

8 Review of Quiz 15 QUESTION about the random numbers generated in Quiz 15: Would these number represent the throw of two dice? NO: The numbers 2 through 12 are not equally likely! rand.nextint(6) + rand.nextint(6) + 2 8

9 Chapter 6 File Processing (pp ) 6.1 File reading basics 6.2 Details of token based processing 6.3 Line based processing 6.4 Advanced file processing 6.5 Case study zip code lookup 9

10 Chapter 6 File Processing (pp ) In Chapter 3 we discussed how to construct a Scanner object to read input from the console. Now we will look at how to construct Scanner objects to read input from files. The idea is fairly straightforward, but Java does not make it easy to read from input files. This is unfortunate because many interesting problems can be formulated as fileprocessing tasks. Many introductory computer science classes have abandoned file processing altogether and left the topic for the second course because it is considered too advanced for novices. 10

11 Chapter 6 File Processing (pp ) There is nothing intrinsically complex about file processing Java was not designed for file processing The designers of Java have not been particularly eager to provide a simple solution. They did, however, introduce the Scanner class as a way to simplify some of the details associated with reading files. The result is that file reading is still awkward in Java But at least the level of detail is manageable. 11

12 Chapter 6 File Processing (pp ) Before we start writing file-processing programs, we have to explore some issues related to Java exceptions. Remember that exceptions are errors that halt the execution of a program. In the case of file processing: trying to open a file that doesn t exist trying to read beyond the end of a file 12

13 Chapter 6 File Processing (pp ) Types of files: Text files: Can be viewed and edited using simple text editors Binary files: Use internal format and require special software to read, write or view 13

14 Chapter 6 File Processing (pp ) Text Files 14

15 Chapter 6 File Processing (pp ) 15

16 Chapter 6 File Processing (pp ) // Report some basic information about a file. import java.io.*; // for File public class FileInfo { public static void main(string[] args) { File f = new File("Test.txt"); System.out.println("exists returns " + f.exists()); System.out.println("canRead returns " + f.canread()); System.out.println("length returns " + f.length()); System.out.println("getAbsolutePath returns " + f.getabsolutepath()); 16

17 Chapter 6 File Processing (pp ) 17

18 Chapter 6.1 File Reading Basics (pp ) Input/output (I/O) import java.io.*; Create a File object to get info about a file on your drive. (This doesn't actually create a new file on the hard disk.) File f = new File("example.txt"); if (f.exists() && f.length() > 1000) { f.delete(); Method name canread() delete() exists() getname() length() renameto(file) Description returns whether file is able to be read removes file from disk whether this file exists on disk returns file's name returns number of bytes in file changes name of file 18

19 Chapter 6.1 File Reading Basics (pp ) Reading files To read a file, pass a File when constructing a Scanner. Scanner name = new Scanner(new File("file name")); Example: File file = new File("mydata.txt"); Scanner input = new Scanner(file); or (shorter): Scanner input = new Scanner(new File("mydata.txt")); 19

20 Chapter 6.1 File Reading Basics (pp ) File paths absolute path: specifies a drive or a top "/" folder C:/Documents/smith/hw6/input/data.csv Windows can also use backslashes to separate folders. relative path: does not specify any top-level folder names.dat input/kinglear.txt Assumed to be relative to the current directory: Scanner input = new Scanner(new File("data/readme.txt")); If our program is in H:/hw6, Scanner will look for H:/hw6/data/readme.txt 20

21 Chapter 6.1 File Reading Basics (pp ) Compiler error w/ files import java.io.*; import java.util.*; // for File // for Scanner public class ReadFile { public static void main(string[] args) { Scanner input = new Scanner(new File("data.txt")); String text = input.next(); System.out.println(text); The program fails to compile with the following error: ReadFile.java:6: unreported exception java.io.filenotfoundexception; must be caught or declared to be thrown Scanner input = new Scanner(new File("data.txt")); ^ 21

22 Chapter 6.1 File Reading Basics (pp ) Exceptions exception: An object representing a runtime error. dividing an integer by 0 calling substring on a String and passing too large an index trying to read the wrong type of value from a Scanner trying to read a file that does not exist We say that a program with an error "throws" an exception. It is also possible to "catch" (handle or fix) an exception. checked exception: An error that must be handled by our program (otherwise it will not compile). We must specify how our program will handle file I/O failures. 22

23 Chapter 6.1 File Reading Basics (pp ) The throws clause throws clause: Keywords on a method's header that state that it may generate an exception (and will not handle it). Syntax: public static type name(params) throws type { Example: public class ReadFile { public static void main(string[] args) throws FileNotFoundException { Like saying, "I hereby announce that this method might throw an exception, and I accept the consequences if this happens." 23

24 Chapter 6.1 File Reading Basics (pp ) import java.io.*; // for File import java.util.*; // Java utilities public class FileRead { public static void main(string[] args) throws FileNotFoundException { File f = new File("Test.txt"); Scanner input = new Scanner(f); System.out.println("exists returns " + f.exists()); System.out.println("canRead returns " + f.canread()); System.out.println("length returns " + f.length()); System.out.println("getAbsolutePath returns " + f.getabsolutepath()); int count = 0; while (input.hasnext()) { String word = input.next(); count++; System.out.println("total words = " + count); 24

25 Chapter 6.1 File Reading Basics (pp ) 25

26 Chapter 6.2 Details of Token-Based Processing (pp ) Input tokens token: A unit of user input, separated by whitespace. A Scanner splits a file's contents into tokens. If an input file contains the following: "John Smith" The Scanner can interpret the tokens as the following types: Token Type(s) 23 int, double, String 3.14 double, String "John String Smith" String 26

27 Chapter 6.2 Details of Token-Based Processing (pp ) Files and input cursor Consider a file weather.txt that contains this text: A Scanner views all input as a stream of characters: \n \n\n \n ^ input cursor: The current position of the Scanner. 27

28 Chapter 6.2 Details of Token-Based Processing (pp ) Consuming tokens consuming input: Reading input and advancing the cursor. Calling nextint etc. moves the cursor past the current token \n \n\n \n ^ double d = input.nextdouble(); // \n \n\n \n ^ String s = input.next(); // "23.5" \n \n\n \n ^ 28

29 Chapter 6.2 Details of Token-Based Processing (pp ) File input question Recall the input file weather.txt: Write a program that prints the change in temperature between each pair of neighboring days to 23.5, change = to 19.1, change = to 7.4, change = to 22.8, change = to 18.5, change = to -1.8, change = to 14.9, change =

30 Chapter 6.2 Details of Token-Based Processing (pp ) // Displays changes in temperature from data in an input file. import java.io.*; // for File import java.util.*; // for Scanner public class Temperatures { public static void main(string[] args) throws FileNotFoundException { Scanner input = new Scanner(new File("weather.txt")); double prev = input.nextdouble(); // fencepost for (int i = 1; i <= 7; i++) { double next = input.nextdouble(); System.out.println(prev + " to " + next + ", change = " + (next - prev)); prev = next; 30

31 Chapter 6.2 Details of Token-Based Processing (pp ) Reading an entire file Suppose we want our program to work no matter how many numbers are in the file. Currently, if the file has more numbers, they will not be read. If the file has fewer numbers, what will happen? A crash! Example output from a file with just 3 numbers: 16.2 to 23.5, change = to 19.1, change = -4.4 Exception in thread "main" java.util.nosuchelementexception at java.util.scanner.throwfor(scanner.java:838) at java.util.scanner.next(scanner.java:1347) at Temperatures.main(Temperatures.java:12) 31

32 Chapter 6.2 Details of Token-Based Processing (pp ) Scanner exceptions NoSuchElementException You read past the end of the input. InputMismatchException You read the wrong type of token (e.g. read "hi" as an int). Finding and fixing these exceptions: Read the exception text for line numbers in your code (the first line that mentions your file; often near the bottom): Exception in thread "main" java.util.nosuchelementexception at java.util.scanner.throwfor(scanner.java:838) at java.util.scanner.next(scanner.java:1347) at MyProgram.myMethodName(MyProgram.java:19) at MyProgram.main(MyProgram.java:6) 32

33 Chapter 6.2 Details of Token-Based Processing (pp ) Scanner tests for valid input Method hasnext() hasnextint() hasnextdouble() Description returns true if there is a next token returns true if there is a next token and it can be read as an int returns true if there is a next token and it can be read as a double These methods of the Scanner do not consume input; they just give information about what the next token will be. Useful to see what input is coming, and to avoid crashes. These methods can be used with a console Scanner, as well. When called on the console, they sometimes pause waiting for input. 33

34 Chapter 6.2 Details of Token-Based Processing (pp ) Using hasnext methods Avoiding type mismatches: Scanner console = new Scanner(System.in); System.out.print("How old are you? "); if (console.hasnextint()) { int age = console.nextint(); // will not crash! System.out.println("Wow, " + age + " is old!"); else { System.out.println("You didn't type an integer."); Avoiding reading past the end of a file: Scanner input = new Scanner(new File("example.txt")); if (input.hasnext()) { String token = input.next(); // will not crash! System.out.println("next token is " + token); 34

35 Chapter 6.2 Details of Token-Based Processing (pp ) File input question 2 Modify the temperature program to process the entire file, regardless of how many numbers it contains. Example: If a ninth day's data is added, output might be: 16.2 to 23.5, change = to 19.1, change = to 7.4, change = to 22.8, change = to 18.5, change = to -1.8, change = to 14.9, change = to 16.1, change =

36 Chapter 6.2 Details of Token-Based Processing (pp ) // Displays changes in temperature from data in an input file. import java.io.*; // for File import java.util.*; // for Scanner public class Temperatures { public static void main(string[] args) throws FileNotFoundException { Scanner input = new Scanner(new File("weather.txt")); double prev = input.nextdouble(); // fencepost while (input.hasnextdouble()) { double next = input.nextdouble(); System.out.println(prev + " to " + next + ", change = " + (next - prev)); prev = next; 36

37 Chapter 6.2 Details of Token-Based Processing (pp ) File input question 3 Modify the temperature program to handle files that contain non-numeric tokens (by skipping them). For example, it should produce the same output as before when given this input file, weather2.txt: Tuesday 19.1 Wed 7.4 THURS. TEMP: <-- Marty here is my data! --Kim 14.9 :-) You may assume that the file begins with a real number. 37

38 Chapter 6.2 Details of Token-Based Processing (pp ) // Displays changes in temperature from data in an input file. import java.io.*; // for File import java.util.*; // for Scanner public class Temperatures2 { public static void main(string[] args) throws FileNotFoundException { Scanner input = new Scanner(new File("weather.txt")); double prev = input.nextdouble(); // fencepost while (input.hasnext()) { if (input.hasnextdouble()) { double next = input.nextdouble(); System.out.println(prev + " to " + next + ", change = " + (next - prev)); prev = next; else { input.next(); // throw away unwanted token 38

39 Chapter 6.2 Details of Token-Based Processing (pp ) Election question Write a program that reads a file poll.txt of poll data. Format: State Obama% McCain% ElectoralVotes Pollster CT Oct U. of Connecticut NE Sep Rasmussen AZ Oct Northern Arizona U. The program should print how many electoral votes each candidate leads in, and who is leading overall in the polls. Obama : 214 votes McCain: 257 votes 39

40 Chapter 6.2 Details of Token-Based Processing (pp ) // Computes leader in presidential polls, based on input file such as: // AK Oct Ivan Moore Research import java.io.*; import java.util.*; // for File // for Scanner public class Election { public static void main(string[] args) throws FileNotFoundException { Scanner input = new Scanner(new File("polls.txt")); int obamavotes = 0, mccainvotes = 0; while (input.hasnext()) { if (input.hasnextint()) { int obama = input.nextint(); int mccain = input.nextint(); int evotes = input.nextint(); if (obama > mccain) { obamavotes = obamavotes + evotes; else if (mccain > obama) { mccainvotes = mccainvotes + evotes; else { input.next(); // skip non-integer token System.out.println("Obama : " + obamavotes + " votes"); System.out.println("McCain: " + mccainvotes + " votes"); 40

41 Chapter 6.2 Details of Token-Based Processing (pp ) Hours question Given a file hours.txt with the following contents: 123 Kim Eric Stef Consider the task of computing hours worked by each person: Kim (ID#123) worked 31.4 hours (7.85 hours/day) Eric (ID#456) worked 36.8 hours (7.36 hours/day) Stef (ID#789) worked 39.5 hours (7.9 hours/day) Let's try to solve this problem token-by-token... 41

42 Chapter 6.2 Details of Token-Based Processing (pp ) Hours answer (flawed) // This solution does not work! import java.io.*; import java.util.*; // for File // for Scanner public class HoursWorked { public static void main(string[] args) throws FileNotFoundException { Scanner input = new Scanner(new File("hours.txt")); while (input.hasnext()) { // process one person int id = input.nextint(); String name = input.next(); double totalhours = 0.0; int days = 0; while (input.hasnextdouble()) { totalhours += input.nextdouble(); days++; System.out.println(name + " (ID#" + id + ") worked " + totalhours + " hours (" + (totalhours / days) + " hours/day)"); 42

43 Chapter 6.2 Details of Token-Based Processing (pp ) Flawed output Susan (ID#123) worked hours (97.48 hours/day) Exception in thread "main" java.util.inputmismatchexception at java.util.scanner.throwfor(scanner.java:840) at java.util.scanner.next(scanner.java:1461) at java.util.scanner.nextint(scanner.java:2091) at HoursWorked.main(HoursBad.java:9) The inner while loop is grabbing the next person's ID. We want to process the tokens, but we also care about the line breaks (they mark the end of a person's data). A better solution is a hybrid approach: First, break the overall input into lines. Then break each line into tokens. 43

44 Assignments for this week 1. Laboratory for Chapter 5 due TODAY (Monday 10/27) IMPORTANT: When you me your laboratory Word Document, be sure it is all in one file 2. Laboratory for Chapter 6 due NEXT MONDAY (Monday 11/3) IMPORTANT: When you me your laboratory Word Document, be sure it is all in one file 3. Read pp (Chapter 6) for Wednesday 4/9 4. Be sure to complete Quiz 16 before leaving class tonight This is another program to write You must demonstrate the program to me before you leave lab 44

AP Computer Science. File Input with Scanner. Copyright 2010 by Pearson Education

AP Computer Science. File Input with Scanner. Copyright 2010 by Pearson Education AP Computer Science File Input with Scanner Input/output (I/O) import java.io.*; Create a File object to get info about a file on your drive. (This doesn't actually create a new file on the hard disk.)

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6 File Input with Scanner reading: 6.1 6.2, 5.4 2 Input/output (I/O) import java.io.*; Create a File object to get info about a file on your drive. (This doesn't actually

More information

Building Java Programs Chapter 6

Building Java Programs Chapter 6 Building Java Programs Chapter 6 File Processing Copyright (c) Pearson 2013. All rights reserved. Input/output (I/O) import java.io.*; Create a File object to get info about a file on your drive. (This

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6: File Processing Lecture 6-1: File input using Scanner reading: 6.1-6.2, 5.3 self-check: Ch. 6 #1-6 exercises: Ch. 6 #5-7 Input/output ("I/O") import java.io.*; Create

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6 Lecture 6-1: File Input with Scanner reading: 6.1-6.2, 5.3 self-check: Ch. 6 #1-6 exercises: Ch. 6 #5-7 videos: Ch. 6 #1-2 Input/output (I/O) import java.io.*; Create a

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6 Lecture 6-1: File Input with Scanner reading: 6.1-6.2, 5.3 self-check: Ch. 6 #1-6 exercises: Ch. 6 #5-7 videos: Ch. 6 #1-2 Input/output (I/O) import java.io.*; Create a

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6: File Processing 1 file input using Scanner Chapter outline File objects exceptions file names and folder paths token-based file processing line-based file processing processing

More information

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 19: NOV. 15TH INSTRUCTOR: JIAYIN WANG

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 19: NOV. 15TH INSTRUCTOR: JIAYIN WANG CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 19: NOV. 15TH INSTRUCTOR: JIAYIN WANG 1 Notice Assignment Class Exercise 19 is assigned Homework 8 is assigned Both Homework 8 and Exercise 19 are

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

File class in Java. Scanner reminder. File methods 10/28/14. File Input and Output (Savitch, Chapter 10)

File class in Java. Scanner reminder. File methods 10/28/14. File Input and Output (Savitch, Chapter 10) File class in Java File Input and Output (Savitch, Chapter 10) TOPICS File Input Exception Handling File Output Programmers refer to input/output as "I/O". Input is received from the keyboard, mouse, files.

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6 Line-Based File Input reading: 6.3-6.5 2 Hours question Given a file hours.txt with the following contents: 123 Alex 12.5 8.2 7.6 4.0 456 Alina 4.2 11.6 6.3 2.5 12.0 789

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming File as Input; Exceptions; while loops; Basic Arrays Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Program Analysis Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin q PS5 Walkthrough Thursday

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6: File Processing Lecture 6-2: Advanced file input reading: 6.3-6.5 self-check: #7-11 exercises: #1-4, 8-11 Copyright 2009 by Pearson Education Hours question Given a file

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6 Lecture 6-2: Line-Based File Input reading: 6.3-6.5 2 Hours question Given a file hours.txt with the following contents: 123 Ben 12.5 8.1 7.6 3.2 456 Greg 4.0 11.6 6.5

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6: File Processing 1 Lecture outline line-based file processing using Scanners processing a file line by line mixing line-based and token-based file processing searching

More information

Reading Input from Text File

Reading Input from Text File Islamic University of Gaza Faculty of Engineering Computer Engineering Department Computer Programming Lab (ECOM 2114) Lab 5 Reading Input from Text File Eng. Mohammed Alokshiya November 2, 2014 The simplest

More information

CIS 110: Introduction to Computer Programming

CIS 110: Introduction to Computer Programming CIS 110: Introduction to Computer Programming Lecture 15 Our Scanner eats files ( 6.1-6.2) 10/31/2011 CIS 110 (11fa) - University of Pennsylvania 1 Outline Programming assertion recap The Scanner object

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

Files. Reading data from files. File class. Compiler error with files. Checked exceptions. Exceptions. Readings:

Files. Reading data from files. File class. Compiler error with files. Checked exceptions. Exceptions. Readings: Reading data from files Files Creating a Scanner for a file, general syntax: Scanner = new Scanner(new File("")); Example: Scanner input = new Scanner(new File("numbers.txt")); Readings:

More information

EXCEPTIONS. Fundamentals of Computer Science I

EXCEPTIONS. Fundamentals of Computer Science I EXCEPTIONS Exception in thread "main" java.lang.numberformatexception: For input string: "3.5" at java.lang.numberformatexception.forinputstring(numberformatexception.java:48) at java.lang.integer.parseint(integer.java:458)

More information

CSCI 1103: File I/O, Scanner, PrintWriter

CSCI 1103: File I/O, Scanner, PrintWriter CSCI 1103: File I/O, Scanner, PrintWriter Chris Kauffman Last Updated: Wed Nov 29 13:22:24 CST 2017 1 Logistics Reading from Eck Ch 2.1 on Input, File I/O Ch 11.1-2 on File I/O Goals Scanner for input

More information

Computer Science is...

Computer Science is... Computer Science is... Computational complexity theory Complexity theory is the study of how algorithms perform with an increase in input size. All problems (like is n a prime number? ) fit inside a hierarchy

More information

Excep&ons and file I/O

Excep&ons and file I/O Excep&ons and file I/O Exception in thread "main" java.lang.numberformatexception: For input string: "3.5" at java.lang.numberformatexception.forinputstring(numberformatexception.java:48) at java.lang.integer.parseint(integer.java:458)

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. File Input and Output

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. File Input and Output WIT COMP1000 File Input and Output I/O I/O stands for Input/Output So far, we've used a Scanner object based on System.in for all input (from the user's keyboard) and System.out for all output (to the

More information

CSCI 1103: File I/O, Scanner, PrintWriter

CSCI 1103: File I/O, Scanner, PrintWriter CSCI 1103: File I/O, Scanner, PrintWriter Chris Kauffman Last Updated: Mon Dec 4 10:03:11 CST 2017 1 Logistics Reading from Eck Ch 2.1 on Input, File I/O Ch 11.1-2 on File I/O Goals Scanner for input Input

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

Outline. CIS 110: Introduction to Computer Programming. Exam announcements. Programming assertions revisited. An extended example: mystery

Outline. CIS 110: Introduction to Computer Programming. Exam announcements. Programming assertions revisited. An extended example: mystery Outline CIS 110: Introduction to Computer Programming Programming assertion recap The object and files Token-based file processing Lecture 15 Our eats files ( 6.1-6.2) 1 2 Exam announcements Attempting

More information

CS244 Advanced Programming Applications

CS244 Advanced Programming Applications CS 244 Advanced Programming Applications Exception & Java I/O Lecture 5 1 Exceptions: Runtime Errors Information includes : class name line number exception class 2 The general form of an exceptionhandling

More information

COMP200 INPUT/OUTPUT. OOP using Java, based on slides by Shayan Javed

COMP200 INPUT/OUTPUT. OOP using Java, based on slides by Shayan Javed 1 1 COMP200 INPUT/OUTPUT OOP using Java, based on slides by Shayan Javed Input/Output (IO) 2 3 I/O So far we have looked at modeling classes 4 I/O So far we have looked at modeling classes Not much in

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 6 Lecture 6-3: Searching Files reading: 6.3-6.5 2 Recall: Line-based methods Method nextline() Description returns the next entire line of input hasnextline() returns true

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

Topic 11 Scanner object, conditional execution

Topic 11 Scanner object, conditional execution Topic 11 Scanner object, conditional execution "There are only two kinds of programming languages: those people always [complain] about and those nobody uses." Bjarne Stroustroup, creator of C++ Copyright

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 5 Lecture 5-4: do/while loops, assertions reading: 5.1, 5.5 1 The do/while loop do/while loop: Performs its test at the end of each repetition. Guarantees that the loop's

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us From this site you can click on the COSC-236

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

Unit 10: exception handling and file I/O

Unit 10: exception handling and file I/O Unit 10: exception handling and file I/O Using File objects Reading from files using Scanner Writing to file using PrintStream not in notes 1 Review What is a stream? What is the difference between a text

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 5 Lecture 5-4: do/while loops, assertions reading: 5.1, 5.5 1 The do/while loop do/while loop: Performs its test at the end of each repetition. Guarantees that the loop's

More information

A token is a sequence of characters not including any whitespace.

A token is a sequence of characters not including any whitespace. Scanner A Scanner object reads from an input source (keyboard, file, String, etc) next() returns the next token as a String nextint() returns the next token as an int nextdouble() returns the next token

More information

Topic 11 Scanner object, conditional execution

Topic 11 Scanner object, conditional execution https://www.dignitymemorial.com/obituaries/brookline-ma/adele-koss-5237804 Topic 11 Scanner object, conditional execution Logical thinking and experience was as important as theory in using the computer

More information

Welcome to the Using Objects lab!

Welcome to the Using Objects lab! Welcome to the Using Objects lab! Learning Outcomes By the end of this lab: 1. Be able to define chapter 3 terms. 2. Describe reference variables and compare with primitive data type variables. 3. Draw

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 3: Parameters, Return, and Interactive Programs with Scanner 1 Lecture outline console input with Scanner objects input tokens Scanner as a parameter to a method cumulative

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 4: Conditional Execution 1 loop techniques cumulative sum fencepost loops conditional execution Chapter outline the if statement and the if/else statement relational expressions

More information

COSC 123 Computer Creativity. I/O Streams and Exceptions. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 123 Computer Creativity. I/O Streams and Exceptions. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 123 Computer Creativity I/O Streams and Exceptions Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Objectives Explain the purpose of exceptions. Examine the try-catch-finally

More information

EXCEPTION HANDLING. // code that may throw an exception } catch (ExceptionType parametername) {

EXCEPTION HANDLING. // code that may throw an exception } catch (ExceptionType parametername) { EXCEPTION HANDLING We do our best to ensure program correctness through a rigorous testing and debugging process, but that is not enough. To ensure reliability, we must anticipate conditions that could

More information

-Alfred North Whitehead. Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from

-Alfred North Whitehead. Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from Copyright Pearson Education, 2010 Based on slides by Marty Stepp and Stuart Reges from http://www.buildingjavaprograms.com/ Topic 15 boolean methods and random numbers "It is a profoundly erroneous truism,

More information

File Processing. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. A Class for Representing a File

File Processing. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. A Class for Representing a File Unit 4, Part 2 File Processing Computer Science S-111 Harvard University David G. Sullivan, Ph.D. A Class for Representing a File The File class in Java is used to represent a file on disk. To use it,

More information

JAVA PROGRAMMING LAB. ABSTRACT In this Lab you will learn to write programs for executing statements repeatedly using a while, do while and for loop

JAVA PROGRAMMING LAB. ABSTRACT In this Lab you will learn to write programs for executing statements repeatedly using a while, do while and for loop Islamic University of Gaza Faculty of Engineering Computer Engineering Dept. Computer Programming Lab (ECOM 2114) ABSTRACT In this Lab you will learn to write programs for executing statements repeatedly

More information

9. Java Errors and Exceptions

9. Java Errors and Exceptions Errors and Exceptions in Java 9. Java Errors and Exceptions Errors and exceptions interrupt the normal execution of the program abruptly and represent an unplanned event. Exceptions are bad, or not? Errors,

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Summary of Methods; User Input using Scanner Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu Admin

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 5 Lecture 5-2: Random Numbers reading: 5.1, 5.6 1 http://xkcd.com/221/ 2 Randomness Lack of predictability: don't know what's coming next Random process: outcomes do not

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us or http://www.class-notes.info or http://www.lecture-notes.tripod.com

More information

CSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige

CSC System Development with Java. Exception Handling. Department of Statistics and Computer Science. Budditha Hettige CSC 308 2.0 System Development with Java Exception Handling Department of Statistics and Computer Science 1 2 Errors Errors can be categorized as several ways; Syntax Errors Logical Errors Runtime Errors

More information

Chapter 4: Control Structures I

Chapter 4: Control Structures I Chapter 4: Control Structures I Java Programming: From Problem Analysis to Program Design, Second Edition Chapter Objectives Learn about control structures. Examine relational and logical operators. Explore

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us From this site you can click on the COSC-236

More information

1. An operation in which an overall value is computed incrementally, often using a loop.

1. An operation in which an overall value is computed incrementally, often using a loop. Practice Exam 2 Part I: Vocabulary (10 points) Write the terms defined by the statements below. 1. An operation in which an overall value is computed incrementally, often using a loop. 2. The < (less than)

More information

Garfield AP CS. User Input, If/Else. Most slides from Building Java Programs. Thanks, Stuart Regesand Marty Stepp!

Garfield AP CS. User Input, If/Else. Most slides from Building Java Programs. Thanks, Stuart Regesand Marty Stepp! Garfield AP CS User Input, If/Else Most slides from Building Java Programs. Thanks, Stuart Regesand Marty Stepp! Warmup Write a method add10 that takes one integer parameter. Your method should return

More information

CS 211: Existing Classes in the Java Library

CS 211: Existing Classes in the Java Library CS 211: Existing Classes in the Java Library Chris Kauffman Week 3-2 Logisitics Logistics P1 Due tonight: Questions? Late policy? Lab 3 Exercises Thu/Fri Play with Scanner Introduce it today Goals Class

More information

7. Java Input/Output. User Input/Console Output, File Input and Output (I/O)

7. Java Input/Output. User Input/Console Output, File Input and Output (I/O) 116 7. Java Input/Output User Input/Console Output, File Input and Output (I/O) 117 User Input (half the truth) e.g. reading a number: int i = In.readInt(); Our class In provides various such methods.

More information

! definite loop: A loop that executes a known number of times. " The for loops we have seen so far are definite loops. ! We often use language like

! definite loop: A loop that executes a known number of times.  The for loops we have seen so far are definite loops. ! We often use language like Indefinite loops while loop! indefinite loop: A loop where it is not obvious in advance how many times it will execute.! We often use language like " "Keep looping as long as or while this condition is

More information

The keyword list thus far: The Random class. Generating "Random" Numbers. Topic 16

The keyword list thus far: The Random class. Generating Random Numbers. Topic 16 Topic 16 Creating Correct Programs "It is a profoundly erroneous truism, repeated by all the copybooks, and by eminent people when they are making speeches, that we should cultivate the habit of thinking

More information

AP Computer Science. Return values, Math, and double. Copyright 2010 by Pearson Education

AP Computer Science. Return values, Math, and double. Copyright 2010 by Pearson Education AP Computer Science Return values, Math, and double Distance between points Write a method that given x and y coordinates for two points prints the distance between them If you can t do all of it, pseudocode?

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 7 Lecture 7-3: File Output; Reference Semantics reading: 6.4-6.5, 7.1, 4.3, 3.3 self-checks: Ch. 7 #19-23 exercises: Ch. 7 #5 Two separate topics File output A lot like printing

More information

Topic 16. battle -they are strictly limited in number, they require fresh horses, and must only be made at decisive moments." -Alfred North Whitehead

Topic 16. battle -they are strictly limited in number, they require fresh horses, and must only be made at decisive moments. -Alfred North Whitehead Topic 16 Creating Correct Programs "It is a profoundly erroneous truism, repeated by all the copybooks, and by eminent people when they are making speeches, that we should cultivate the habit of thinking

More information

First Java Program - Output to the Screen

First Java Program - Output to the Screen First Java Program - Output to the Screen These notes are written assuming that the reader has never programmed in Java, but has programmed in another language in the past. In any language, one of the

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site I have decided to keep this site for the whole semester I still hope to have blackboard up and running, but you

More information

Exceptions and I/O: sections Introductory Programming. Errors in programs. Exceptions

Exceptions and I/O: sections Introductory Programming. Errors in programs. Exceptions Introductory Programming Exceptions and I/O: sections 80 83 Anne Haxthausen a IMM, DTU 1 Exceptions (section 80) 2 Input and output (I/O) (sections 81-83) a Parts of this material are inspired by/originate

More information

Introductory Programming Exceptions and I/O: sections

Introductory Programming Exceptions and I/O: sections Introductory Programming Exceptions and I/O: sections 80 83 Anne Haxthausen a IMM, DTU 1 Exceptions (section 80) 2 Input and output (I/O) (sections 81-83) a Parts of this material are inspired by/originate

More information

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand COSC 236 Web Site You will always find the course material at: http://www.class-notes.us From this site you can click on the COSC-236

More information

CONTENTS: Arrays Strings. COMP-202 Unit 5: Loops in Practice

CONTENTS: Arrays Strings. COMP-202 Unit 5: Loops in Practice CONTENTS: Arrays Strings COMP-202 Unit 5: Loops in Practice Computing the mean of several numbers Suppose we want to write a program which asks the user to enter several numbers and then computes the average

More information

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Java Basics

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Java Basics WIT COMP1000 Java Basics Java Origins Java was developed by James Gosling at Sun Microsystems in the early 1990s It was derived largely from the C++ programming language with several enhancements Java

More information

Object Oriented Programming and Design in Java. Session 2 Instructor: Bert Huang

Object Oriented Programming and Design in Java. Session 2 Instructor: Bert Huang Object Oriented Programming and Design in Java Session 2 Instructor: Bert Huang Announcements TA: Yipeng Huang, yh2315, Mon 4-6 OH on MICE clarification Next Monday's class canceled for Distinguished Lecture:

More information

H212 Introduction to Software Systems Honors

H212 Introduction to Software Systems Honors Introduction to Software Systems Honors Lecture #04: Fall 2015 1/20 Office hours Monday, Wednesday: 10:15 am to 12:00 noon Tuesday, Thursday: 2:00 to 3:45 pm Office: Lindley Hall, Room 401C 2/20 Printing

More information

File I/O Array Basics For-each loop

File I/O Array Basics For-each loop File I/O Array Basics For-each loop 178 Recap Use the Java API to look-up classes/method details: Math, Character, String, StringBuffer, Random, etc. The Random class gives us several ways to generate

More information

Advanced Java Concept Unit 1. Mostly Review

Advanced Java Concept Unit 1. Mostly Review Advanced Java Concept Unit 1. Mostly Review Program 1. Create a class that has only a main method. In the main method create an ArrayList of Integers (remember the import statement). Add 10 random integers

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 5 Random Numbers reading: 5.1, 5.6 1 http://xkcd.com/221/ 2 The while loop while loop: Repeatedly executes its body as long as a logical test is true. while (test) { statement(s);

More information

Università degli Studi di Bologna Facoltà di Ingegneria. Principles, Models, and Applications for Distributed Systems M

Università degli Studi di Bologna Facoltà di Ingegneria. Principles, Models, and Applications for Distributed Systems M Università degli Studi di Bologna Facoltà di Ingegneria Principles, Models, and Applications for Distributed Systems M tutor Isam M. Al Jawarneh, PhD student isam.aljawarneh3@unibo.it Mobile Middleware

More information

Loops. Eng. Mohammed Abdualal. Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department

Loops. Eng. Mohammed Abdualal. Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department Islamic University of Gaza Faculty of Engineering Computer Engineering Department Computer Programming Lab (ECOM 2114) Created by Eng: Mohammed Alokshiya Modified by Eng: Mohammed Abdualal Lab 6 Loops

More information

Text User Interfaces. Keyboard IO plus

Text User Interfaces. Keyboard IO plus Text User Interfaces Keyboard IO plus User Interface and Model Model: objects that solve problem at hand. User interface: interacts with user getting input from user giving output to user reporting on

More information

Exceptions and Libraries

Exceptions and Libraries Exceptions and Libraries RS 9.3, 6.4 Some slides created by Marty Stepp http://www.cs.washington.edu/143/ Edited by Sarah Heckman 1 Exceptions exception: An object representing an error or unusual condition.

More information

Reading Text Files. 1 Reading from text files: Scanner

Reading Text Files. 1 Reading from text files: Scanner Reading Text Files 1 Reading from text files: Scanner Text files, whether produced by a program or with a text editor, can be read by a program using class Scanner, part of the java.util package. We open

More information

6. Java Errors and Exceptions

6. Java Errors and Exceptions Errors and Exceptions in Java 6. Java Errors and Exceptions Errors and exceptions interrupt the normal execution of the program abruptly and represent an unplanned event. Exceptions are bad, or not? Errors,

More information

Chapter 10. File I/O. Copyright 2016 Pearson Inc. All rights reserved.

Chapter 10. File I/O. Copyright 2016 Pearson Inc. All rights reserved. Chapter 10 File I/O Copyright 2016 Pearson Inc. All rights reserved. Streams A stream is an object that enables the flow of data between a program and some I/O device or file If the data flows into a program,

More information

Bjarne Stroustrup. creator of C++

Bjarne Stroustrup. creator of C++ We Continue GEEN163 I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone. Bjarne Stroustrup creator

More information

COSC 123 Computer Creativity. Introduction to Java. Dr. Ramon Lawrence University of British Columbia Okanagan

COSC 123 Computer Creativity. Introduction to Java. Dr. Ramon Lawrence University of British Columbia Okanagan COSC 123 Computer Creativity Introduction to Java Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca Key Points 1) Introduce Java, a general-purpose programming language,

More information

CS115. Chapter 17 Exception Handling. Prof. Joe X. Zhou Department of Computer Science. To know what is exception and what is exception handling

CS115. Chapter 17 Exception Handling. Prof. Joe X. Zhou Department of Computer Science. To know what is exception and what is exception handling CS115 Pi Principles i of fcomputer Science Chapter 17 Exception Handling Prof. Joe X. Zhou Department of Computer Science CS115 ExceptionHandling.1 Objectives in Exception Handling To know what is exception

More information

2.8. Decision Making: Equality and Relational Operators

2.8. Decision Making: Equality and Relational Operators Page 1 of 6 [Page 56] 2.8. Decision Making: Equality and Relational Operators A condition is an expression that can be either true or false. This section introduces a simple version of Java's if statement

More information

CSE 1223: Introduction to Computer Programming in Java Chapter 7 File I/O

CSE 1223: Introduction to Computer Programming in Java Chapter 7 File I/O CSE 1223: Introduction to Computer Programming in Java Chapter 7 File I/O 1 Sending Output to a (Text) File import java.util.scanner; import java.io.*; public class TextFileOutputDemo1 public static void

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 7: Arrays Lecture 7-3: More text processing, file output 1 Remember: charat method Strings are internally represented as char arrays String traversals are a common form of

More information

Chapter 2: Basic Elements of Java

Chapter 2: Basic Elements of Java Chapter 2: Basic Elements of Java TRUE/FALSE 1. The pair of characters // is used for single line comments. ANS: T PTS: 1 REF: 29 2. The == characters are a special symbol in Java. ANS: T PTS: 1 REF: 30

More information

Exception Handling. General idea Checked vs. unchecked exceptions Semantics of... Example from text: DataAnalyzer.

Exception Handling. General idea Checked vs. unchecked exceptions Semantics of... Example from text: DataAnalyzer. Exception Handling General idea Checked vs. unchecked exceptions Semantics of throws try-catch Example from text: DataAnalyzer Exceptions [Bono] 1 Announcements Lab this week is based on the textbook example

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 5 Lecture 5-1: while Loops, Fencepost Loops, and Sentinel Loops reading: 4.1, 5.1 self-check: Ch. 4 #2; Ch. 5 # 1-10 exercises: Ch. 4 #2, 4, 5, 8; Ch. 5 # 1-2 Copyright 2009

More information

Object-Oriented Programming in Java

Object-Oriented Programming in Java CSCI/CMPE 3326 Object-Oriented Programming in Java Class, object, member field and method, final constant, format specifier, file I/O Dongchul Kim Department of Computer Science University of Texas Rio

More information

Midterm Examination (MTA)

Midterm Examination (MTA) M105: Introduction to Programming with Java Midterm Examination (MTA) Spring 2013 / 2014 Question One: [6 marks] Choose the correct answer and write it on the external answer booklet. 1. Compilers and

More information

Building Java Programs

Building Java Programs Building Java Programs Chapter 4 Lecture 4-1: Scanner; if/else reading: 3.3 3.4, 4.1, 4.5 2 Interactive Programs with Scanner reading: 3.3-3.4 Interactive programs We have written programs that print console

More information

Lecture 20. Java Exceptional Event Handling. Dr. Martin O Connor CA166

Lecture 20. Java Exceptional Event Handling. Dr. Martin O Connor CA166 Lecture 20 Java Exceptional Event Handling Dr. Martin O Connor CA166 www.computing.dcu.ie/~moconnor Topics What is an Exception? Exception Handler Catch or Specify Requirement Three Kinds of Exceptions

More information

COMP 110 Programming Exercise: Simulation of the Game of Craps

COMP 110 Programming Exercise: Simulation of the Game of Craps COMP 110 Programming Exercise: Simulation of the Game of Craps Craps is a game of chance played by rolling two dice for a series of rolls and placing bets on the outcomes. The background on probability,

More information