SE-1021 Software Engineering II Week 9, Class 3 Get ready for PollEverywhere! BlocksMania and File I/O Reading/Writing text in ASCII, Unicode, and UTF-8 Reading/Writing binary data Handy tool for finding files 1
HW See hw/ on web web.msoe.edu/yoder/se1021/hw/ web.msoe.edu/yoder/se1021/hw/ SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 2
PollEverywhere Responses PollEverywhere responses for the last lecture are available at slides/se pollEverywhereResponsesslides/se pollEverywhereResponses Shows what I see for non-anonymous questions SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 3
Useful Resources JOptionPane advanced features Dean & Dean, pp JFileChooser (D&D, pp ) JDialog For creating a more advanced “JOptionPane” (e.g. with multiple fields) javax.swing.Timer For having regularly-repeating events (or other timed events) SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 4
Editing binary files Check out Be.HexEdit SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 5
File I/O (1) Low-level file I/O for raw byte I/O, similar to System.in.read() and System.out.write() FileInputStream — reads raw bytes FileInputStream FileOutputStream — writes raw bytes FileOutputStream Text file I/O for I/O of text Scanner - reads & parses text (provides readLine) Scanner PrintWriter - writes text PrintWriter Text file I/O (alternate, perhaps more complicated) BufferedReader - Provides readLine 6
File I/O (2) High-level file I/O for I/O of primitive data types DataInputStream — reads primitive data types DataInputStream DataOutputStream — writes primitive data types DataOutputStream Object file I/O for I/O of arbitrary object data ObjectInputStream — reads arbitrary object data ObjectInputStream ObjectOutputStream — writes arbitrary object data ObjectOutputStream SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 7
SE-2811 Dr. Josiah Yoder Slide style: Dr. Hornick 8
BlocksMania load-level GameBoard class (See example) Simple tile class SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 9
BlocksMania Tile SE-1021 Dr. Josiah Yoder Slide style: Dr. Hornick 10 [TODO: How to prep this question?] Since the type will be the same for every object from the Tile class, can you think of a better way to store this information?
Consider this code: for(int col = 0; col<numCols && col<line.length()+1; col++) { c = line.charAt(col+1); } How can we fix this to skip the first character, and have col line up with the column headers? SE-2811 Dr. Josiah Yoder Slide style: Dr. Hornick 11
SE-2811 Dr. Josiah Yoder Slide style: Dr. Hornick 12 DO ONLINE: PollEv.com/ yoderj