File Processing

advertisement
COSC 1P03
File Processing
You've achieved success in your field when
you don't know whether what you're doing is
work or play.
Warren Beatty (1937 - )
Data Structures and Abstraction
1.1
COSC 1P03
Classes
 Classes
 entities within a system
 imported
 e.g. Turtle
 of same project
 write more than one class
 Instances
 objects created via new
 Instance variables
 object’s memory
 state
 Methods
 things object can do
 behaviour
 System execution via interacting objects
Data Structures and Abstraction
1.2
COSC 1P03
Methods
 Method calls
 local
 methodname ( paramlist )
 of another object
 object . methodname ( paramlist )
 this . methodname ( paramlist )
 Behaviour depends on state
 e.g. effect of forward depends on pen state and direction
 methods refer to instance variables
 can base actions on values of instance variables
 loops, decisions
 Role of constructor
 well-defined initial state
Data Structures and Abstraction
1.3
COSC 1P03
Case Study: Payroll System
 Problem
 Payroll report based on multiple binary data files
 Analysis & design
 entities
 items (Employees)
 details about item
 Payroll report generator
 process for generating report
 Merge algorithm
 Combine 2 binary data files into one.
Data Structures and Abstraction
1.4
COSC 1P03
Employee Class
 Class
 not a main class
 no method main
 Execution
 only when methods (constructor) called
 Attributes/instance variables
 Algorithms/methods
 constructors
 default
 methods
 accessor/updater
 operations
Data Structures and Abstraction
1.5
COSC 1P03
Persistent Objects
 Lifetime extends beyond a single program execution
 Binary I/O
 Record (object) at-a-time
 Serializable
 serialVersionUID
 BinaryOutputFile
 writeObject()
 subtype
 upcasting to Object
 always valid
 BinaryDataFile
 readObject()
 must downcast to expected type
 not a conversion
 ClassCastException
Data Structures and Abstraction
1.9
COSC 1P03
Creating a Binary File
 MakeEmpFile class
 only used once to bootstrap system
 Employee records
 data from a text file (ASCIIDataFile)
 reads text record using Employee constructor
 writes Employee object using writeObject
Data Structures and Abstraction
1.12
COSC 1P03
Listing Contents of a Binary File
 Working with internal representation
 cannot view using text editor
 must use same Employee class
 or won’t be able to read
 don’t make copy, use same file
 programs in same package or import necessary classe(s)
(e.g. Employee)
 can be more than one main class in a package
 Listing Employee File
 program to read binary file and display as text
 in same package (Payroll_System)
 Creating the Employee File
 Payroll3 assumes Employee objects are already in
existence
 must be a program to create Employee objects initially
 in same package (Payroll_System)
Data Structures and Abstraction
1.14
COSC 1P03
Payroll3 Class
 Binary input
 note: no use of Employee constructor – objects already exist
 Processing algorithm
 process to EOF
 update record
Data Structures and Abstraction
1.16
COSC 1P03
Class Design
 Cohesion
 Selective disclosure
 only what client needs to know
 hide representation and implementation
 Accessor and updater methods
 instance variables
 private
 if accessible, provide accessor method
 Java convention: getxxx
 if updateable, provide updater method
 Java convention setxxx
 pseudo attributes
 Methods/Constructors
 private vs public
Data Structures and Abstraction
1.18
COSC 1P03
File Processing
 large collections of data
 sequential processing
 batch
 sequential devices
 typically sorted by key
 random processing
 real-time/on-line
 direct access device
 access by key
 key
 primary key
Data Structures and Abstraction
1.19
COSC 1P03
File Merge
 combine two like files
 maintain key order
 basic algorithm
 by hand
 combine sorted piles
 rationale
 by computer
 files & records
 algorithm
 improvements
 sentinel
 pattern
 filter method
Data Structures and Abstraction
1.20
COSC 1P03
E.g. Employee File Merge
 HIGH_KEY
 key for sentinel record
 greater than all naturally occurring keys
 termination condition
 getRec
 input filter
 creates sentinel object at EOF
 Equal keys?
 unique records?
 error situation vs duplicate keys vs combine records
Data Structures and Abstraction
1.21
COSC 1P03
File Update
 master file
 transaction file
 transactions
 updating
 random processing
 immediate
 sequential processing
 batch transactions
 batch processing
 new master file
Data Structures and Abstraction
1.25
COSC 1P03
Sequential File Update





sequential processing
batched transactions
backups
report generation
key comparison
 master < trans
 transaction applies to later master
 master = trans
 transaction applies to this master
 master > trans
 must apply to earlier master
 no master for transaction
 error
 add new record
 pattern
Data Structures and Abstraction
1.26
COSC 1P03
The End
Data Structures and Abstraction
1.34
Download