CSCI 161 Introduction to Computer Science

Size: px
Start display at page:

Download "CSCI 161 Introduction to Computer Science"

Transcription

1 CSCI 161 Introduction to Computer Science Department of Mathematics and Computer Science Lecture 7 File Input/Output

2 Motivation for File I/O So far: Just relying on the user for data input/output (I/O)... Problem 1: Today's applications are mostly data-driven Many programs require large amount of data to be input into a program - Inputting data by hand is very error-prone and tedious - If program crashes... need to start over - Need: to input data from a file to a program 2

3 Motivation (Cont.) Examples of Input Files: Enter the height of all known Sitka Spruce in Olympic National Park Enter the U.S. census data Enter our customers' data Enter all the synonyms and root words for a chat bot... 3

4 Motivation (Cont.) Problem 2: Output can be large (or even continuous)! Many programs run continuously, generating output - Health-monitor (Fitbit, etc.), for instance. But we only know how to output to the screen - How do you make sense of data that is streaming past your eyes at insane rates? Need: to output to a file, and analyze the data in that file later! 4

5 Outline File Input/Output Reading from Files: Scanner Writing to Files: PrintWriter Parsing Input Splitting/Tokenizing Type Conversion of Strings Putting It All Together Tweet Processing 5

6 Assume... We have a file, tree_height.txt, that is in the BlueJ project folder 6

7 Opening Files Content of tree_height.txt (each line is a tree's height) Want: TreeAnalyzer class A constructor that inputs the name of the file, stores its data in an ArrayList Methods that operate over the data now stored in the ArrayList 7

8 Opening Files (Cont.) Include at the top of the class: import java.io.file; import java.io.filenotfoundexception; import java.util.scanner; How to open a file for reading (need a Scanner object): Important! The methods and/or constructors that opens the file needs to indicate that it may throw an exception. public void somemethod(string filename) throws FileNotFoundException { //open the file Scanner file = new Scanner(new File(filename)); } //file is open, now what? Let's take a peek at Scanner's API 8

9 Review: Java's Scanner API Method public Scanner(File source) public Scanner(InputStream source) public boolean hasnext() Descrip-on Constructor. Creates a scanner on the given file. Constructor. Creates a scanner on the given stream (later). Returns true if the scanner has another token. public String nextline() Returns an entire line of input as a String. public void close() Closes the scanner. 9

10 Let's Write a TreeAnalyzer Class TreeAnalyzer Class A constructor that inputs a file name. Opens the file and reads its contents into an ArrayList. public void open(string filename). Reads file contents into an ArrayList. public double gettallest() that returns the max tree height. public ArrayList<Double> gettreeslessthan(double limit) that returns the list of trees shorter than the given limit. public void report() that prints the following info on the screen: File name: (name of file you opened) Number of trees: (number of trees in the file) Tallest tree height: (tallest tree found in file) Code is posted on course page! 10

11 TreeAnalyzer public class TreeAnalyzer { private ArrayList<Double> listofheights; private String thefile; //stores a list of tree heights //name of the file that we opened public TreeAnalyzer(String filename) throws FileNotFoundException { //instantiate an empty arraylist listofheights = new ArrayList<Double>(); thefile = filename; open(thefile); } } //other methods omitted 11

12 TreeAnalyzer public class TreeAnalyzer { private ArrayList<Double> listofheights; private String thefile; //stores a list of tree heights //name of the file that we opened public TreeAnalyzer(String filename) throws FileNotFoundException { //instantiate an empty arraylist listofheights = new ArrayList<Double>(); thefile = filename; open(thefile); } public void open(string filename) throws FileNotFoundException { //clear out the ArrayList, which holds data from the previously opened file listofheights.clear(); } //open the given file for reading Scanner file = new Scanner(new File(filename)); while (file.hasnext()) { String line = file.nextline(); //grab the next line from the file double treeheight = Double.parseDouble(line); //grab the next line from the file listofheights.add(treeheight); //add it to my list } file.close(); } //other methods omitted 12

13 Outline File Input/Output Reading from Files: Scanner Writing to Files: PrintWriter Parsing Input Splitting/Tokenizing Type Conversion of Strings Putting It All Together Tweet Processing 13

14 Writing to Files? TreeAnalyzer Class We know how to read from files... how about writing to files? public void reporttofile(string filename) that writes the file's info into a file, in the following format: File name: tree_height.txt Number of trees: Tallest tree height: 14

15 Writing to Files Include at the top of the class: import java.io.printwriter; import java.io.filenotfoundexception; How to open a file for writing: Again, methods using a PrintWriter requires you to throw an Exception //constructor public void somemethod(string filename) throws FileNotFoundException { //open the file for writing PrintWriter fileout = new PrintWriter(new File(filename)); } //file is open, now what? Let's take a peek at PrintWriter's API 15

16 Java's PrintWriter API Method Descrip-on public PrintWriter(File destination) public void close() public void print(string s) public void println(string s) Constructor. Opens the given file for writing. Closes the file after you're done writing to it. (Must be done!) Prints the given string to the opened file Prints the given string and a newline to the opened file Back to this: public void reporttofile(string filename) that writes the file's info into a file, in the following format: Code is posted on course page! 16

17 Still in TreeAnalyzer /** * Writes a summary of the data to the file indicated by the given filename filename the name of file to write into */ public void reporttofile(string filename) throws FileNotFoundException { PrintWriter fileout = new PrintWriter(new File(filename)); fileout.println(" "); fileout.println("file name: " + thefile); fileout.println(" "); fileout.println("total number of trees: " + listofheights.size()); fileout.println("tallest tree height: " + gettallest()); fileout.close(); } 17

18 Outline File Input/Output Reading from Files: Scanner Writing to Files: PrintWriter Parsing Input Splitting/Tokenizing Type Conversion of Strings Putting It All Together Tweet Processing 18

19 Dealing with More Complicated Input Most files are tab- or comma-delimited (separated) per line Let's say each line holds data about a Robot, and we want to create a RobotArmy: - Each line contains the Robot's (x,y) coordinates, whether it's visible, whether it's colorful, respectively. # x,y,visible,colorful (just a comment -- skip!) 0,50,true,false 200,150,true,true 100,250,true,false 300,150,false,false 240,0,true,true 200,350,true,true Want: Add a method to RobotArmy, public int addrobots(string filename), that adds Robots from the given file, and returns the number of Robots added. 19

20 Dealing with More Complicated Input (Cont.) Most files are tab- or comma-delimited (separated) per line: - Each line contains the Robot's coordinates, whether it's visible, whether it's colorful, respectively. Recall the Robot API: # x,y,visible,colorful (just a comment -- skip!) 0,50,true,false 200,150,true,true 100,250,true,false 300,150,false,false 240,0,true,true 200,350,true,true Method public Robot() public void moveto(int x, int y) public void makecolorful() public void makemonochrome() Descrip-on Constructor. Creates a new Robot object Moves a robot to the given location Colors the robot Changes the robot to black and white 20

21 Tokenizing Strings There are two common ways to tokenize a String: StringTokenizer class (You know this one from HW5 TweetParser) String's split() method (example below) Also from the String API: Method public String[] split(string delim) Descrip-on Tokenizes the current String by the given delimiter. Return an array of tokens. 21

22 Using the split() Method Example String str = "Hello world! 1 2 3"; String[] words = str.split(" "); //tokenizes by whitespace 22

23 Using the split() Method Example String str = "Hello world! 1 2 3"; String[] words = str.split(" "); //tokenizes by whitespace System.out.println(words.length); //how many tokens? > 5 (int) 23

24 Using the split() Method Example String str = "Hello world! 1 2 3"; String[] words = str.split(" "); //tokenizes by whitespace System.out.println(words.length); //how many tokens? > 5 (int) System.out.println(words[0]); > "Hello" (String) System.out.println(words[1]); > "world!" (String) System.out.println(words[2]); //String with a value of "1" (not an int!!) > "1" (String) System.out.println(words[3]); > "2" (String) System.out.println(words[4]); > "3" (String) How do we convert these to ints?! Can't cast from String 24

25 Converting Strings to Other Types Important! We still need to convert Strings holding numbers to an int, or double. Know these! From the Boolean wrapper class: Method public static boolean parseboolean(string s) Descrip-on Returns a boolean given the String representation From the Double wrapper class: Method public static double parsedouble(string s) Descrip-on Returns a double given the String representation From the Integer wrapper class: Method public static int parseinteger(string s) Descrip-on Returns a int given the String representation 25

26 Using the split() Method Example String str = "Hello world! 1 2 3"; String[] words = str.split(" "); //tokenizes by whitespace System.out.println(words.length); //how many tokens? > 5 (int) System.out.println(words[0]); > "Hello" (String) System.out.println(words[1]); > "world!" (String) System.out.println(Integer.parseInt(words[2])); //now it's an int! > 1 (int) System.out.println(Integer.parseInt(words[3])); > 2 (int) System.out.println(Integer.parseInt(words[4])); > 3 (int) 26

27 Putting It All Together File Contents - Each line contains the Robot's coordinates, whether it's visible, whether it's colorful, respectively. # x,y,visible,colorful (just a comment -- skip!) 0,50,true,false 200,150,true,true 100,250,true,false 300,150,false,false 240,0,true,true 200,350,true,true Add a method to RobotArmy, public int addrobots(string filename), that adds Robots from the given file, and returns the number of Robots added. - Problem 1: Need to extract "tokens" from each line of input (use split() or tokenizer) - Problem 2: Need to parse tokens into ints and booleans (use parse* methods from the wrapper classes) <<Let's implement it>> - Code on course page: RobotArmy_FileIO.zip 27

28 Outline File Input/Output Reading from Files: Scanner Writing to Files: PrintWriter Parsing Input Splitting/Tokenizing Type Conversion of Strings Putting It All Together Tweet Processing 28

29 Processing Real Data Let's put your TweetParser to use! Recall the following API you wrote for HW 5 Method public TweetParser() Descrip-on Constructor. Creates a default TweetParser public boolean ishashtag(string s) public boolean ismention(string s) Returns true if the given string is a #hashtag Returns true if the given string is public void processtweet(string tweet) public void printreport() public void reset() Parses the given tweet and updates statistics Prints out the statistics that were collected from the processed tweets Resets all statistics 29

30 Example Usage of Current Class TweetParser tp = new TweetParser(); tp.processtweet("@erin and the Lady Logs vie for the D3 championship! tp.processtweet("what a send-off! Good luck, Loggers! Logger Sports Network: Good #LoggerUP"); tp.printreport(); > Number of Tweets: 2 > Number of Terms: 27 > Number of Hashtags: 2 > Number of Mentions: 4 Wouldn't it be great if, instead of calling processtweet() by hand on each tweet, we input a file instead? Write a class, TweetsAnalyzer with a single method, - public void processtweetsfromfile(string filename) 30

31 Working with Real Twitter Data We collected data from the Twitter feed for a week straight in Stored it in tweets.txt Tab-Delimited Format: date [tab] handle [tab] tweet_content :52: BrandonChild21 Why do I always have to miss track on the nice days :58: Xo_laj Oh my goooodddd Paul Wesley ï ßòâ ï ßòªï ßòé :00: KoBAEne_Kist Eyes of the world - Dillon Cooper ft azizi Gibson/denzel curry :05: carizzzzle why not ï ßòõ (lots more) Idea: Open the file, and for each line in the file, - Tokenize it: Split line up by a tab. A tab in Java is: "\t" - Throw out first two tokens - Call processtweet() on the final token Report the results! Code Provided on course page: Lec6_TweetProcessor_FileIO.zip 31

32 Code for TweetsAnalyzer public class TweetsAnalyzer { private TweetProcessor tweetprocessor; public TweetsAnalyzer() { tweetprocessor = new TweetProcessor(); } public void processtweetsfromfile(string filename) throws FileNotFoundException { Scanner file = new Scanner(new File(filename)); while (file.hasnext()) { //grab a tweet from the file (one per line) String tweet = file.nextline(); } //the tweet content "payload" is the third token! String[] tokens = tweet.split("\t"); tweetprocessor.processtweet(tokens[2]); } } //print out the report! tweetprocessor.printreport(); 32

33 Administrivia 4/5 Some reminders: Lec 6 (Scanner, HashMap) posted Exam II next week!!! Lab 9 Smarter Bot Things worth mentioning: - People not using/bringing their API handouts - Finding something in a HashMap does not require loops Unlike arrays and ArrayLists 33

34 Administrivia 4/8 Posted Solution to Hwk 6 Homework 7 (Due Wed, 4/17) Reminder: Review Wednesday, exam Thursday Practice old lab: ComboGuesser (hits Arrays and loops hard) - Solution is given Talk tonight! Windows Internals: Multi-Core, Virtualization, and Persistent Memory - Matt Holle, Group Manager, Microsoft - Where: Thompson Hall Where: Monday, April 8th, 4pm 34

35 Administrivia (Cont.) Need student volunteers for faculty search Professor Chambers 35

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

CSCI 161 Introduction to Computer Science

CSCI 161 Introduction to Computer Science CSCI 161 Introduction to Computer Science Department of Mathematics and Computer Science Lecture 2b A First Look at Class Design Last Time... We saw: How fields (instance variables) are declared How methods

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

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

Computer Science 300 Sample Exam Today s Date 100 points (XX% of final grade) Instructor Name(s) (Family) Last Name: (Given) First Name:

Computer Science 300 Sample Exam Today s Date 100 points (XX% of final grade) Instructor Name(s) (Family) Last Name: (Given) First Name: Computer Science 300 Sample Exam Today s Date 100 points (XX% of final grade) Instructor Name(s) (Family) Last Name: (Given) First Name: CS Login Name: NetID (email): @wisc.edu Circle your Lecture: Lec001

More information

Fall 2017 CISC124 10/1/2017

Fall 2017 CISC124 10/1/2017 CISC124 Today First onq quiz this week write in lab. More details in last Wednesday s lecture. Repeated: The quiz availability times will change to match each lab as the week progresses. Useful Java classes:

More information

Chapter 4 Classes in the Java Class Libraries

Chapter 4 Classes in the Java Class Libraries Programming Fundamental I ACS-1903 Chapter 4 Classes in the Java Class Libraries 1 Random Random The Random class provides a capability to generate pseudorandom values pseudorandom because the stream of

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

A+ Computer Science -

A+ Computer Science - Visit us at www.apluscompsci.com Full Curriculum Solutions M/C Review Question Banks Live Programming Problems Tons of great content! www.facebook.com/apluscomputerscience Scanner kb = new Scanner(System.in);

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

5/24/2006. Last Time. Announcements. Today. Method Overloading. Method Overloading - Cont. Method Overloading - Cont. (Midterm Exam!

5/24/2006. Last Time. Announcements. Today. Method Overloading. Method Overloading - Cont. Method Overloading - Cont. (Midterm Exam! Last Time Announcements (Midterm Exam!) Assn 2 due tonight. Before that methods. Spring 2006 CISC101 - Prof. McLeod 1 Spring 2006 CISC101 - Prof. McLeod 2 Today Look at midterm solution. Review method

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

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

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

CSC 222: Object-Oriented Programming. Fall 2017

CSC 222: Object-Oriented Programming. Fall 2017 CSC 222: Object-Oriented Programming Fall 2017 Lists, data storage & access ArrayList class methods: add, get, size, remove, contains, set, indexof, tostring generics, for-each loop example: Dictionary

More information

CSCI 136 Written Exam #0 Fundamentals of Computer Science II Spring 2015

CSCI 136 Written Exam #0 Fundamentals of Computer Science II Spring 2015 CSCI 136 Written Exam #0 Fundamentals of Computer Science II Spring 2015 Name: This exam consists of 6 problems on the following 7 pages. You may use your single-sided handwritten 8 ½ x 11 note sheet during

More information

5/29/2006. Announcements. Last Time. Today. Text File I/O Sample Programs. The File Class. Without using FileReader. Reviewed method overloading.

5/29/2006. Announcements. Last Time. Today. Text File I/O Sample Programs. The File Class. Without using FileReader. Reviewed method overloading. Last Time Reviewed method overloading. A few useful Java classes: Other handy System class methods Wrapper classes String class StringTokenizer class Assn 3 posted. Announcements Final on June 14 or 15?

More information

Dynamic Arrays. Fundamentals of Computer Science

Dynamic Arrays. Fundamentals of Computer Science Dynamic Arrays Fundamentals of Computer Science Outline Dynamically sized arrays Java ArrayList Like an array but extra-powerful Has no fixed sized Add/remove elements dynamically as needed Contains objects

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

Files. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Files. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington Files CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1 Files and Text Files A file is a collection of data, that is saved on a hard drive. A text

More information

Files & Exception Handling. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Files & Exception Handling. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington Files & Exception Handling CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1 Exception Handling (try catch) Suppose that a line of code may make your

More information

Files. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington

Files. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington Files CSE 1310 Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1 Files and Text Files A file is a collection of data, that is saved on a hard drive. A text

More information

Chapter 4 Defining Classes I

Chapter 4 Defining Classes I Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the

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

HST 952. Computing for Biomedical Scientists Lecture 8

HST 952. Computing for Biomedical Scientists Lecture 8 Harvard-MIT Division of Health Sciences and Technology HST.952: Computing for Biomedical Scientists HST 952 Computing for Biomedical Scientists Lecture 8 Outline Vectors Streams, Input, and Output in Java

More information

Chapter 12. File Input and Output. CS180-Recitation

Chapter 12. File Input and Output. CS180-Recitation Chapter 12 File Input and Output CS180-Recitation Reminders Exam2 Wed Nov 5th. 6:30 pm. Project6 Wed Nov 5th. 10:00 pm. Multitasking: The concurrent operation by one central processing unit of two or more

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

Mandatory Assignment 1, INF 4130, 2017

Mandatory Assignment 1, INF 4130, 2017 Mandatory Assignment 1, INF 4130, 2017 Deadline: Monday October 2. First: Read the general requirements for mandatory assignments at the department here: Norwegian: https://www.uio.no/studier/admin/obligatoriske-aktiviteter/mn-ifi-obliger-retningslinjer.html

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

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.

} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2. Class #10: Understanding Primitives and Assignments Software Design I (CS 120): M. Allen, 19 Sep. 18 Java Arithmetic } Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = 2 + 5 / 2; 3.

More information

Programming for Mobile Computing

Programming for Mobile Computing 1/22 Programming for Mobile Computing EECS 1022 moodle.yorku.ca Drop deadline 2/22 July 21 Until this date you can drop the course without getting a grade for it and, hence, it will not affect your gpa.

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

CS61BL. Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling

CS61BL. Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling CS61BL Lecture 1: Welcome to CS61BL! Intro to Java and OOP Testing Error-handling About me Name: Edwin Liao Email: edliao@berkeley.edu Office hours: Thursday 3pm - 5pm Friday 11am - 1pm 611 Soda Or by

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

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

CS 455 Midterm Exam 2 Fall 2015 [Bono] Nov. 10, 2015

CS 455 Midterm Exam 2 Fall 2015 [Bono] Nov. 10, 2015 Name: USC NetID (e.g., ttrojan): CS 455 Midterm Exam 2 Fall 2015 [Bono] Nov. 10, 2015 There are 9 problems on the exam, with 54 points total available. There are 8 pages to the exam (4 pages double-sided),

More information

COMP Streams and File I/O. Yi Hong June 10, 2015

COMP Streams and File I/O. Yi Hong June 10, 2015 COMP 110-001 Streams and File I/O Yi Hong June 10, 2015 Today Files, Directories, Path Streams Reading from a file Writing to a file Why Use Files for I/O? RAM is not persistent Data in a file remains

More information

CSC 321: Data Structures. Fall 2016

CSC 321: Data Structures. Fall 2016 CSC 321: Data Structures Fall 2016 Balanced and other trees balanced BSTs: AVL trees, red-black trees TreeSet & TreeMap implementations heaps priority queue implementation heap sort 1 Balancing trees recall:

More information

CSC 321: Data Structures. Fall 2017

CSC 321: Data Structures. Fall 2017 CSC 321: Data Structures Fall 2017 Balanced and other trees balanced BSTs: AVL trees, red-black trees TreeSet & TreeMap implementations heaps priority queue implementation heap sort 1 Balancing trees recall:

More information

CSC 222: Object-Oriented Programming. Spring 2012

CSC 222: Object-Oriented Programming. Spring 2012 CSC 222: Object-Oriented Programming Spring 2012 Lists, data storage & access ArrayList class methods: add, get, size, remove, contains, set, indexof, tostring generics, for-each loop autoboxing & unboxing

More information

COMP-202: Foundations of Programming. Lecture 12: Linked List, and File I/O Sandeep Manjanna, Summer 2015

COMP-202: Foundations of Programming. Lecture 12: Linked List, and File I/O Sandeep Manjanna, Summer 2015 COMP-202: Foundations of Programming Lecture 12: Linked List, and File I/O Sandeep Manjanna, Summer 2015 Announcements Assignment 4 is posted and Due on 29 th of June at 11:30 pm. Course Evaluations due

More information

Adam Blank Lecture 2 Winter 2019 CS 2. Introduction to Programming Methods

Adam Blank Lecture 2 Winter 2019 CS 2. Introduction to Programming Methods Adam Blank Lecture 2 Winter 2019 CS 2 Introduction to Programming Methods CS 2: Introduction to Programming Methods File I/O, Object Oriented Programming, and Lists Questions From Last Time 1 What are

More information

Programming Assignment Comma Separated Values Reader Page 1

Programming Assignment Comma Separated Values Reader Page 1 Programming Assignment Comma Separated Values Reader Page 1 Assignment What to Submit 1. Write a CSVReader that can read a file or URL that contains data in CSV format. CSVReader provides an Iterator for

More information

Announcements. 1. Forms to return today after class:

Announcements. 1. Forms to return today after class: Announcements Handouts (3) to pick up 1. Forms to return today after class: Pretest (take during class later) Laptop information form (fill out during class later) Academic honesty form (must sign) 2.

More information

CS 302: Introduction to Programming in Java. Lectures 17&18. It s insanely hot. People desperately need some snowflakes

CS 302: Introduction to Programming in Java. Lectures 17&18. It s insanely hot. People desperately need some snowflakes CS 302: Introduction to Programming in Java Lectures 17&18 It s insanely hot. People desperately need some snowflakes Static variables Again (class variables) Variables unique to the class (all objects

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

16-Dec-10. Collections & Data Structures ABSTRACTION VS. IMPLEMENTATION. Abstraction vs. Implementation

16-Dec-10. Collections & Data Structures ABSTRACTION VS. IMPLEMENTATION. Abstraction vs. Implementation Collections & Data Structures Boaz Kantor Introduction to Computer Science IDC Herzliya ABSTRACTION VS. IMPLEMENTATION 2 Abstraction vs. Implementation Data structures provide both abstraction and implementation.

More information

Lecture 7. File Processing

Lecture 7. File Processing Lecture 7 File Processing 1 Data (i.e., numbers and strings) stored in variables, arrays, and objects are temporary. They are lost when the program terminates. To permanently store the data created in

More information

Lecture 22. Java Input/Output (I/O) Streams. Dr. Martin O Connor CA166

Lecture 22. Java Input/Output (I/O) Streams. Dr. Martin O Connor CA166 Lecture 22 Java Input/Output (I/O) Streams Dr. Martin O Connor CA166 www.computing.dcu.ie/~moconnor Topics I/O Streams Writing to a Stream Byte Streams Character Streams Line-Oriented I/O Buffered I/O

More information

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination

Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination First Name: Last Name: McGill ID: Section: Faculty of Science COMP-202A - Introduction to Computing I (Fall 2008) Final Examination Thursday, December 11, 2008 Examiners: Mathieu Petitpas [Section 1] 14:00

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

CS 180. Recitation 8 / {30, 31} / 2007

CS 180. Recitation 8 / {30, 31} / 2007 CS 180 Recitation 8 / 30, 31 / 2007 Announcements Project 1 is out Due 9/5 @ 10:00pm Start early! Use the newsgroup for your questions LWSN B146 Lab help hours 7-10pm Monday through Wednesday Naming Conventions

More information

IT 313 Advanced Application Development

IT 313 Advanced Application Development Page 1 of 7 IT 313 Advanced Application Development Practice Midterm Exam Part A. Multiple Choice Questions. Answer all questions. Optional: supply a reason or show work for partial credit in case you

More information

COMP102: Test 2 Model Solutions

COMP102: Test 2 Model Solutions Family Name:.......................... Other Names:.......................... ID Number:............................ Instructions Time allowed: 90 minutes (1 1 2 hours). There are 90 marks in total. Answer

More information

What did we talk about last time? Examples switch statements

What did we talk about last time? Examples switch statements Week 4 - Friday What did we talk about last time? Examples switch statements History of computers Hardware Software development Basic Java syntax Output with System.out.print() Mechanical Calculation

More information

Midterm Exam 2 Thursday, November 15th, points (15% of final grade) Instructors: Jim Williams and Marc Renault

Midterm Exam 2 Thursday, November 15th, points (15% of final grade) Instructors: Jim Williams and Marc Renault Computer Sciences 200 Midterm Exam 2 Thursday, November 15th, 2018 100 points (15% of final grade) Instructors: Jim Williams and Marc Renault (Family) Last Name: (Given) First Name: CS Login Name: NetID

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

Objec&ves. Review. Standard Error Streams

Objec&ves. Review. Standard Error Streams Objec&ves Standard Error Streams Ø Byte Streams Ø Text Streams Oct 5, 2016 Sprenkle - CSCI209 1 Review What are benefits of excep&ons What principle of Java do files break if we re not careful? What class

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

Simple Java Input/Output

Simple Java Input/Output Simple Java Input/Output Prologue They say you can hold seven plus or minus two pieces of information in your mind. I can t remember how to open files in Java. I ve written chapters on it. I ve done it

More information

Data Structures Lecture 1

Data Structures Lecture 1 Fall 2018 Fang Yu Software Security Lab. Dept. Management Information Systems, National Chengchi University Data Structures Lecture 1 A brief review of Java programming Popularity of Programming Languages

More information

COMP-202: Foundations of Programming. Lecture 26: Image Manipulation; Wrap-Up Jackie Cheung, Winter 2015

COMP-202: Foundations of Programming. Lecture 26: Image Manipulation; Wrap-Up Jackie Cheung, Winter 2015 COMP-202: Foundations of Programming Lecture 26: Image Manipulation; Wrap-Up Jackie Cheung, Winter 2015 Announcements Assignment 6 due Tue Apr 14 at 11:59pm Final is scheduled for Apr 29, 6pm 9pm Please

More information

Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10

Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10 Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline Useful character manipulators & functions

More information

Name: Checked: Preparation: Write the output of DeckOfCards.java to a text file Submit through Blackboard by 8:00am the morning of Lab.

Name: Checked: Preparation: Write the output of DeckOfCards.java to a text file Submit through Blackboard by 8:00am the morning of Lab. Lab 14 Name: Checked: Objectives: Practice handling exceptions and writing text files. Preparation: Write the output of DeckOfCards.java to a text file Submit through Blackboard by 8:00am the morning of

More information

CS Introduction to Data Structures Week 1 Thursday

CS Introduction to Data Structures Week 1 Thursday CS 367 - Introduction to Data Structures Week 1 Thursday We assume that you are proficient at object-oriented programming in Java. Please enroll in CS300 if you do not know Java and have not written object-oriented

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

CS 151. Exceptions & Javadoc. slides available on course website. Sunday, September 9, 12

CS 151. Exceptions & Javadoc. slides available on course website. Sunday, September 9, 12 CS 151 Exceptions & Javadoc slides available on course website 1 Announcements Prelab 1 is due now. Please place it in the appropriate (Mon vs. Tues) box. Please attend lab this week. There may be a lecture

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

CSC 222: Object-Oriented Programming. Fall 2017

CSC 222: Object-Oriented Programming. Fall 2017 CSC 222: Object-Oriented Programming Fall 2017 Object-oriented design example: letter frequencies ArrayLists vs. arrays, autoboxing example: word frequencies w/ parallel lists exception handling, System.out.format

More information

CSE 333. Lecture 11 - constructor insanity. Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington

CSE 333. Lecture 11 - constructor insanity. Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington CSE 333 Lecture 11 - constructor insanity Hal Perkins Paul G. Allen School of Computer Science & Engineering University of Washington Administrivia Exercises: - New exercise out today, due Monday morning

More information

Dining philosophers (cont)

Dining philosophers (cont) Administrivia Assignment #4 is out Due Thursday April 8, 10:00pm no late assignments will be accepted Sign up in labs this week for a demo time Office hour today will be cut short (11:30) Another faculty

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

Data Structures. BSc in Computer Science University of New York, Tirana. Assoc. Prof. Marenglen Biba 1-1

Data Structures. BSc in Computer Science University of New York, Tirana. Assoc. Prof. Marenglen Biba 1-1 Data Structures BSc in Computer Science University of New York, Tirana Assoc. Prof. Marenglen Biba 1-1 General info Course : Data Structures (3 credit hours) Instructor : Assoc. Prof. Marenglen Biba Office

More information

When we reach the line "z = x / y" the program crashes with the message:

When we reach the line z = x / y the program crashes with the message: CSCE A201 Introduction to Exceptions and File I/O An exception is an abnormal condition that occurs during the execution of a program. For example, divisions by zero, accessing an invalid array index,

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 30 April 4, 2018 I/O & Histogram Demo Chapters 28 HW7: Chat Server Announcements No penalty for late submission by tomorrow (which is a HARD deadline!)

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 30 April 2, 2012 Streams & IO HW 09 will be available today Announcements Covers Java libraries: colleclons & IO Last automalcally graded HW assignment

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

Defensive Programming

Defensive Programming Defensive Programming Software Engineering CITS1220 Based on the Java1200 Lecture notes by Gordon Royle Lecture Outline Why program defensively? Encapsulation Access Restrictions Documentation Unchecked

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

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

CSE 21 Intro to Computing II. JAVA Objects: String & Scanner

CSE 21 Intro to Computing II. JAVA Objects: String & Scanner CSE 21 Intro to Computing II JAVA Objects: String & Scanner 1 Schedule to Semester s End Week of 11/05 - Lecture #8 (11/07), Lab #10 Week of 11/12 - Lecture #9 (11/14), Lab #11, Project #2 Opens Week of

More information

File Input/Output. Introduction to Computer Science I. Overview (1): Overview (2): CSE 1020 Summer Bill Kapralos. Bill Kapralos.

File Input/Output. Introduction to Computer Science I. Overview (1): Overview (2): CSE 1020 Summer Bill Kapralos. Bill Kapralos. File Input/Output Tuesday, July 25 2006 CSE 1020, Summer 2006, Overview (1): Before We Begin Some administrative details Some questions to consider The Class Object What is the Object class? File Input

More information

Starting Out with Java: From Control Structures Through Objects Sixth Edition

Starting Out with Java: From Control Structures Through Objects Sixth Edition Starting Out with Java: From Control Structures Through Objects Sixth Edition Chapter 11 I/O File Input and Output Reentering data all the time could get tedious for the user. The data can be saved to

More information

JAVA PROGRAMMING (45) Technical Task KEY. Regional 2013

JAVA PROGRAMMING (45) Technical Task KEY. Regional 2013 5 Pages JAVA PROGRAMMING (45) Technical Task Regional 2013 Judges/Graders: Please double-check and verify all scores! Property of Business Professionals of America. May be reproduced only for use in the

More information

CSC 222: Object-Oriented Programming. Fall Object-oriented design

CSC 222: Object-Oriented Programming. Fall Object-oriented design CSC 222: Object-Oriented Programming Fall 2015 Object-oriented design example: word frequencies w/ parallel lists exception handling System.out.format example: word frequencies w/ objects object-oriented

More information

Announcements/Follow-ups

Announcements/Follow-ups Announcements/Follow-ups Midterm 2 graded Average was 52/80 (63%), Std. Dev. was 12 P5 and Lab8 P5 due tomorrow Very light Lab8 Practice with collections Due at end of lab period P6 posted tomorrow Due

More information

Lecture 6. Assignments. Java Scanner. User Input 1/29/18. Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4

Lecture 6. Assignments. Java Scanner. User Input 1/29/18. Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4 Assignments Reading: 2.12, 2.13, 3.1, 3.2, 3.3, 3.4 Lecture 6 Complete for Lab 4, Project 1 Note: Slides 12 19 are summary slides for Chapter 2. They overview much of what we covered but are not complete.

More information

COMP102: Test. 26 April, 2006

COMP102: Test. 26 April, 2006 Name:.................................. ID Number:............................ Signature:.............................. COMP102: Test 26 April, 2006 Instructions Time allowed: 90 minutes (1 1 2 hours).

More information

Full file at

Full file at Chapter 1 Primitive Java Weiss 4 th Edition Solutions to Exercises (US Version) 1.1 Key Concepts and How To Teach Them This chapter introduces primitive features of Java found in all languages such as

More information

Lecture 6. Assignments. Summary - Variables. Summary Program Parts 1/29/18. Reading: 3.1, 3.2, 3.3, 3.4

Lecture 6. Assignments. Summary - Variables. Summary Program Parts 1/29/18. Reading: 3.1, 3.2, 3.3, 3.4 Assignments Lecture 6 Complete for Project 1 Reading: 3.1, 3.2, 3.3, 3.4 Summary Program Parts Summary - Variables Class Header (class name matches the file name prefix) Class Body Because this is a program,

More information

CSCI 136 Written Exam #1 Fundamentals of Computer Science II Spring 2014

CSCI 136 Written Exam #1 Fundamentals of Computer Science II Spring 2014 CSCI 136 Written Exam #1 Fundamentals of Computer Science II Spring 2014 Name: This exam consists of 5 problems on the following 6 pages. You may use your double- sided hand- written 8 ½ x 11 note sheet

More information

COMP-202: Foundations of Programming. Lecture 22: File I/O Jackie Cheung, Winter 2015

COMP-202: Foundations of Programming. Lecture 22: File I/O Jackie Cheung, Winter 2015 COMP-202: Foundations of Programming Lecture 22: File I/O Jackie Cheung, Winter 2015 Announcements Assignment 5 due Tue Mar 31 at 11:59pm Quiz 6 due Tue Apr 7 at 11:59pm 2 Review 1. What is a graph? How

More information

You must bring your ID to the exam.

You must bring your ID to the exam. Com S 227 Spring 2017 Topics and review problems for Exam 2 Monday, April 3, 6:45 pm Locations, by last name: (same locations as Exam 1) A-E Coover 2245 F-M Hoover 2055 N-S Physics 0005 T-Z Hoover 1213

More information

Converting Collections to Arrays. A Bad Approach to Array Conversion. A Better Approach to Array Conversion. public Object[] toarray();

Converting Collections to Arrays. A Bad Approach to Array Conversion. A Better Approach to Array Conversion. public Object[] toarray(); Converting Collections to Arrays Every Java collection can be converted to an array This is part of the basic Collection interface The most elementary form of this method produces an array of base-type

More information

Robots. Byron Weber Becker. chapter 6

Robots. Byron Weber Becker. chapter 6 Using Variables Robots Learning to Program with Java Byron Weber Becker chapter 6 Announcements (Oct 5) Chapter 6 You don t have to spend much time on graphics in Ch6 Just grasp the concept Reminder: Reading

More information

CS 231 Data Structures and Algorithms Fall 2018

CS 231 Data Structures and Algorithms Fall 2018 CS 231 Data Structures and Algorithms Fall 2018 Interface, Node Based Stack, Exception Handling, Class BufferedReader Lecture 12 October 1, 2018 Prof. Zadia Codabux 1 Agenda Node based implementation of

More information

CS 211: Inheritance. Chris Kauffman. Week 5-2

CS 211: Inheritance. Chris Kauffman. Week 5-2 CS 211: Inheritance Chris Kauffman Week 5-2 Logistics Goals Today Dynamic Dispatch Inheritance and Overrides Reminder: Career Fair 11:00 a.m.- 4:00 p.m. Dewberry Hall Wed 2/18: Science/Tech Thu 2/19: Business/Non-tech

More information

ASSIGNMENT 5 Objects, Files, and More Garage Management

ASSIGNMENT 5 Objects, Files, and More Garage Management ASSIGNMENT 5 Objects, Files, and More Garage Management COMP-202B, Winter 2010, All Sections Due: Wednesday, April 14, 2009 (23:55) You MUST do this assignment individually and, unless otherwise specified,

More information

COMP102: 181. Menu. More while loops. Admin: Test. Peter Andreae

COMP102: 181. Menu. More while loops. Admin: Test. Peter Andreae Menu COMP102: 181 More while loops Admin: Test Designing loops with numbers COMP102: 182 When the number of steps is known at the beginning of the loop: int count = 0; int num = 1; while ( count < number)

More information