Presentation is loading. Please wait.

Presentation is loading. Please wait.

Mark Fontenot CSE 1341 - Honors Principles of Computer Science I Note Set 15.

Similar presentations


Presentation on theme: "Mark Fontenot CSE 1341 - Honors Principles of Computer Science I Note Set 15."— Presentation transcript:

1 Mark Fontenot mfonten@engr.smu.edu CSE 1341 - Honors Principles of Computer Science I Note Set 15

2 Note Set 19 Overview Intro to ArrayLists File and Streams

3 ArrayList One of Java’s Container Classes Containers hold other things Can hold unlimited number of object references of any type (all need to be the same type – but remember about inheritance) No need to worry about running out of places (unless you run out of memory) ArrayList list = new ArrayList (); list.add(“Southern”); list.add(“Methodist”); list.add(“University”);

4 Arraylist Useful Methods size() – returns the size of the arraylist get (int i) – returns the reference stored at the specified position i remove( int i) – removes the object references stored at position i and moves the ones after forward ArrayList v = new ArrayList (); v.add(“one”); v.add(“two”); v.add(“three”); for(int i = 0; i < v.size(); i++) System.out.println(v.get());

5 Arraylists Can only hold object references Can’t do ArrayList v = new ArrayList (); ArrayList l = new ArrayList (); l.add(1); l.add(2); l.add(3); for (Integer x: l){ System.out.println(x * 2); } -adding ints, not Integers -They are automatically converted to Integer ojbects Automatically converted from Integers to ints

6 Currently Data in an executing program Stored in RAM while program is in execution When program ends, data is no longer accessible RAM is volatile storage – must have powered to maintain state (retain data)

7 Persistent Storage Non-volatile memory – doesn’t need power to maintain state Data can survive a power cycle Examples hard-drive CDs USB drive (flash memory)

8 File processing Part of nearly all languages Stream – ordered data read or written abstraction in Java Two types of file processing in Java for us Text-based file i/o Binary File I/O - Object serialization (storing objects directly to file) Object serialization/deserialzation

9 Data Hierarchy Lowest level – 1s & 0s - The bit “easy” to create computer hardware that only had to maintain two states 2 bits – 4 combinations 00, 01, 10, 11 3 bits – 8 combination 000, 001, 010, 011, 100, 101, 110, 111 4 bits – 16 combinations n bits – 2 n combinations 8 bits –> 1 byte Java uses 2 bytes to represent a character (16 bytes) – Unicode character set Unicode contains characters from many of the worlds languages

10 Data Hierarchy Can group characters to make fields i.e. string of characters to make name Group of fields makes a record record is implemented as a class in java think about just the data stored in the data members of one instance of an object Name, Id, Address, etc… Group of records can be stored in a file Employee file Customer file Inventory file

11 Java and Files Each file – sequential stream of bytes How that stream/sequence is interpreted is up to the programmer who reads/writes the file How do we know when we’re done reading? OS provides some mechanism to know that the complete contents of the file have been read (sentinel value) programmer knows exactly how many “things” to read from the file 2 Types of File I/O Character File I/O Writing text to files Binary File I/O Writing byte data or complete objects

12 Sample class public class Account { private String acctNum; private String fName; private double balance; public Account (String num, String name, double bal) { acctNum = num; fName = name; balance = bal; } //Assume Accessors and Mutators for each data member }

13 Sample Output import java.util.*; import java.io.*; public class FileOutput { public static void main (String [] args) { //Create an arraylist to store customers ArrayList customers = new ArrayList (); //create some sample customers and add to list Account a = new Account ("123", "Sam", 123.34); customers.add(a); a = new Account("234", "Sue", 223.33); customers.add(a); a = new Account("144", "Mark", 322.22); customers.add(a);

14 Sample Output //open a file Formatter output = null; //must open the file in a try catch block try { output = new Formatter("data.txt"); } catch (IOException e) { System.out.println("There is an error - exiting"); System.exit(1); } //write everything from list to output for (Account x: customers) output.format("%s %s %.2f\n", x.getAcctNum(), x.getFName(), x.getBalance()); output.close(); } This is text-based or character-based file I/O.

15 Sample Read import java.util.*; import java.io.*; public class FileInput { public static void main (String [] args) { //List to put the objects we're going to read from the file ArrayList list = new ArrayList (); //We'll use a scanner object to read from the file. //Are there other ways? Of course... Scanner s = null; try { s = new Scanner (new File ("data.txt")); } catch (IOException e) { System.out.println("Error opening file"); System.exit(1); }

16 Sample Read //Temp variables to store values read from file String aNum, fName; double bal; while (s.hasNext()) { aNum = s.next(); fName = s.next(); bal = s.nextDouble(); Account a = new Account(aNum, fName, bal); list.add(a); } //print the customers out for(Account x: list) System.out.println(x); } could be replaced with: Account a = new Account (s.next(), s.next(), s.nextDouble());


Download ppt "Mark Fontenot CSE 1341 - Honors Principles of Computer Science I Note Set 15."

Similar presentations


Ads by Google