CS-2852 Data Structures LECTURE 1B Andrew J. Wozniewicz Image copyright © 2010 andyjphoto.com.
-
Upload
abraham-mallory -
Category
Documents
-
view
216 -
download
0
Transcript of CS-2852 Data Structures LECTURE 1B Andrew J. Wozniewicz Image copyright © 2010 andyjphoto.com.
CS-2852 Data Structures, Andrew J. Wozniewicz
Agenda• Arrays– One-Dimensional– Two-Dimensional– Multi-Dimensional
• Stream I/O– Text-file I/O– Binary-file I/O
CS-2852 Data Structures, Andrew J. Wozniewicz
Array Definition
Fixed number of values of a single type arranged consecutively and accessed by index.
CS-2852 Data Structures, Andrew J. Wozniewicz
Array Declarationsint[] anArrayOfInts;byte[] anArrayOfBytes;short[] anArrayOfShorts;long[] anArrayOfLongs;float[] anArrayOfFloats;double[] anArrayOfDoubles;boolean[] anArrayOfBooleans;char[] anArrayOfChars;String[] anArrayOfStrings;
CS-2852 Data Structures, Andrew J. Wozniewicz
Multi-Dimensional Arrays• A multidimensional array is simply an
array whose components are themselves arrays.
• The rows are allowed to vary in length.
Arrays of Arrays of…
CS-2852 Data Structures, Andrew J. Wozniewicz
Multi-Dim Array Declaration
int[][] a2;int[][] a2 = new int[10][5];
String[][] Data;
byte[][] screenPix;byte[][] raggedArray = new byte[5][];
CS-2852 Data Structures, Andrew J. Wozniewicz
Multi-Dim Array Example
class MultiDimArrayDemo { public static void main(String[] args) { String[][] names =
{{"Mr. ", "Mrs. ", "Ms. "}, {"Smith", "Jones"}};
System.out.println(names[0][0] + names[1][0]); //Mr. Smith
System.out.println(names[0][2] + names[1][1]); //Ms. Jones
}}
CS-2852 Data Structures, Andrew J. Wozniewicz
Standard I/O Streams• System.in• System.out• System.err
Opened automatically and available without any further action.
CS-2852 Data Structures, Andrew J. Wozniewicz
Standard I/O Streams• Byte streams instead of character
streams: – System.in
• PrintStream (is-a java.io.OutputStream, is-a java.io.FilterOutputStream):– System.out– System.err
CS-2852 Data Structures, Andrew J. Wozniewicz
Using System.inimport java.io.*;public class StreamIOTest1 {
public static void main(String args[]) throws IOException { System.out.println("Hi!");
System.out.print("Enter your name: "); InputStreamReader cin = new InputStreamReader(System.in); BufferedReader input = new BufferedReader(cin); String name = input.readLine(); System.out.print("Hello "); System.out.println(name); }
}
CS-2852 Data Structures, Andrew J. Wozniewicz
Using Console
import java.io.*;public class ConsoleIOTest1 {
public static void main(String[] args) { Console c = System.console(); if (c == null) { System.err.println("No console."); System.exit(1); } String login = c.readLine("Enter your user name: "); c.printf("Welcome, %1$s.\n", login); }
}
CS-2852 Data Structures, Andrew J. Wozniewicz
Reading Text Filesimport java.io.*;public class TextFileReadDemo {
public static void main(String[] args) throws IOException { String inFileName = args[0]; BufferedReader ins =
new BufferedReader( new FileReader(inFileName) ); do {
String line = ins.readLine();if (line == null) break;System.out.println(line);
} while (true);
}}
CS-2852 Data Structures, Andrew J. Wozniewicz
Writing Text Filesimport java.io.*;public class TextFileWriteDemo {
public static void main(String[] args) throws IOException { String outFileName = args[0]; String[] names = new String[] {"Andrew","Dorota","Martin", "Anna","Mimi","Kiki"}; PrintWriter outs = new PrintWriter(new FileWriter(outFileName)); for (int i = 0; i < names.length; i++) { outs.println(names[i]); } outs.close(); }}
CS-2852 Data Structures, Andrew J. Wozniewicz
Writing Binary Files – Part Iimport java.io.*;
public class BinaryDataWriterOnlyTest1 {
static final String dataFile = "invoicedata.dat"; static final double[] prices = { 2.99, 4.79, 5.99, 3.99, 5.99 }; static final int[] units = { 12, 8, 13, 10, 12 }; static final String[] descriptions = { "Milk", "Cereal", "Potato Chips", "Salsa", "Cheddar Cheese" }; ...}
CS-2852 Data Structures, Andrew J. Wozniewicz
Writing Binary Files – Part IIpublic static void main(String[] args) throws IOException { DataOutputStream out = null; try { out = new DataOutputStream( new BufferedOutputStream( new FileOutputStream(dataFile))); for (int i = 0; i < prices.length; i ++) { out.writeDouble(prices[i]); out.writeInt(units[i]); out.writeUTF(descriptions[i]); } } finally { out.close(); }}
CS-2852 Data Structures, Andrew J. Wozniewicz
Reading Binary Files – Part Iimport java.io.*;
public class BinaryDataReadOnlyTest1 {
static final String dataFile = "invoicedata.dat";
public static void main(String[] args) throws IOException {
DataInputStream in = null;
... <see next slide> ...}
CS-2852 Data Structures, Andrew J. Wozniewicz
Reading Binary Files – Part IIdouble total = 0.0;try { in = new DataInputStream( new BufferedInputStream( new FileInputStream(dataFile)));
double price; int unit; String desc;
... <see next slide> ...
finally { in.close();}
CS-2852 Data Structures, Andrew J. Wozniewicz
Reading Binary Files – Part IItry { while (true) { price = in.readDouble(); unit = in.readInt(); desc = in.readUTF(); System.out.format( "You ordered %d units of %s at $%.2f%n", unit, desc, price); total += unit * price; }} catch (EOFException e) { }System.out.format("For a TOTAL of: $%.2f%n", total);
CS-2852 Data Structures, Andrew J. Wozniewicz
Summary• Arrays
– fixed number of values of a single type– one-, or multi-dimensional
• Stream I/O– Simple console I/O: System.in, System.out– Text-file I/O:
• BufferedReader, FileReader• PrintWriter, FileWriter
– Binary-file I/O• DataInputStream, BufferedInputStream, FileInputStream
• DataOutputStream, BufferedOutputStream, FileOutputStream