selection sort and merge sort file input/output. hw 2 – section 02 avg = 96/100

88
Selection sort and Merge Selection sort and Merge sort sort File input/output File input/output

Upload: gervais-nelson

Post on 04-Jan-2016

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection sort and Merge sortSelection sort and Merge sort

File input/outputFile input/output

Selection sort and Merge sortSelection sort and Merge sort

File input/outputFile input/output

Page 2: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW 2 – Section 02• Avg = 96/100

0

20

40

60

80

100

120

0 10 20 30 40

Series1

Page 3: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW 2 – Section 01• Avg = 89/100

0

20

40

60

80

100

120

0 10 20 30 40

Series1

Page 4: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers1. The difference between the two String

methods: equals and equalsIgnoreCase isA. equals compares two string objects, and

ignores case considerationsb. equalsIgnoreCase compares two string objects,

and ignores case considerationsc. both equals and equalsIgnoreCase compare

two string objects and ignore case considerations.

D. both equals and equalsIgnoreCase compare two string objects and consider cases

Page 5: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers2. In order to determine how many

characters contained in a String object myString, we use:

a. myString.size()b. myString.sizec. myString.lengthd. myString.length()

Page 6: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers3. Which of the followings is the

constructor of the class Faculty?a public int Faculty (long SSN ) {…..}b public Faculty(long SSN) { ….}c public void Faculty(long SSN) {….}

d. public Boolean Faculty(long SSN) {….}

Page 7: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers4. Fixed-size array declaration has two

limitations: inability to handle an overflow situation and possible under utilization of allocated spacea. Trueb. False

Page 8: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers5. Consider the following method:

public int compute(int amt) {int temp = amt * 4;return temp;

}How would you characterize amt?a. A data member/ an attributeb. A parameterc. A return valued. A return data type

Page 9: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers6. A code fragment that declare an

array of type double named gpa is:a. double gpa;b. double gpa{ };c. double gpa[ ];d. double gpa( );

Page 10: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers7. Which of the following is incorrect:

a. double testArray[] = new double[12];b. double[] testArray = new double[12];c. double[] testArray;d. double[] testArray[12];

Page 11: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers8. Suppose an array contains 256

elements. What are the least and the greatest number of comparisons for a successful search using linear search?a. 1 and 256b. 0 and 256c. 1 and 8d. 0 and 8

Page 12: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers9. Suppose an array (SORTED) contains

256 elements. What are the least and the greatest number of comparisons for a successful search using binary search?a. 1 and 256b. 0 and 256c. 1 and 8d. 0 and 8

Page 13: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers10. Given a one dimensional array

myArray, what is the correct way of getting the number of elements in this array. a. myArray.length b. myArray.length - 1 c. myArray.size d. myArray.size – 1

Page 14: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 AnswersMatching11.

public void setExchangeRate (double rate) {exchangeRate = rate;

}

C B E

A

D

Page 15: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 AnswersMatching12.

B D F

A G

C E

Page 16: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 AnswersMatching12.

B D F

A

C

E

G

Page 17: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 AnswersMatching– 13. A code fragment that declares an array named

profession and allocate the memory to store 20 values of type String:=;

– new– [20]– profession– String[ ]– String

= ;CD A E B

Page 18: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers

Looks for a value in a linear sequence

Looks for a value by checking the element in The middle of an array

14.

B

A

A. Binary searchB.Linear search

Page 19: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers15.

The following method is invalid. Why?public void myMethod(int myParams) {

return (myParams*2);}

1. Void method should not return an int. It should return nothing.

Page 20: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers16.

public String ClassB( ) {description = “Unknown”;return description;

}

1. String should be removed because Constructors don’t need return data type2. Return description should also be removed because constructorsshould not return anything.

Page 21: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers17.

CurrencyConverter converter = new CurrencyConverter();double amount = converter.feeRate;

1. feeRate is a private attribute and therefore is not assessibleoutside of CurrencyConverter class.

Page 22: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers18.

int number[] = new int[10];for (int i=0; i<number.length; i++) {

number[i] = i;}for (int i=0; i<number.length; i++) {

if (i%2 == 0)System.out.println(" "+ number[i]);

}

0 2 4 6 8

Page 23: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers19obj = new QuestionOne(); // => amount =10Obj.setAmount(0.15); // =>amount = 10*(0.15+1) =

10*1.15 = 11.50

Updated amount is 11.50

Page 24: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

HW2 Answers20

resultStr=“Spring Break" lengthStr =12

Page 25: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sortpublic void selectionSort(int[]

number) {int minIndex, size, temp;size = number.length;

Page 26: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sortfor (int i=0; i<=size-2; i++) {

minIndex = i;for (int j=i+1; j<=size-1; j++) {

if (number[j] < number[minIndex])minIndex=j;

}temp= number[i];number[i]=number[minIndex];number[minIndex] = temp;

}}

Page 27: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=0:minIndex=0j= 1 number[1]=20 > number[0]=18j=2 number[2]=17 < number[0]=18

minIndex = 2j=3 number[3]=40 > number[2]=17j=4 number[4]=22 > number[2]=17j=5 number[5]=27 > number[2]=17j=6 number[6]=30 > number[2]=17

Number

402018 17 22 27 30

0 1 2 3 4 5 6

Page 28: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=0:minIndex=2temp= number[0] = 18number[0]=number[2] = 17number[2] = temp = 18;

Number

402018 17 22 27 30

0 1 2 3 4 5 6

Page 29: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=0:minIndex=2temp= number[0] = 18number[0]=number[2] = 17number[2] = temp = 18;

Number

402017 18 22 27 30

0 1 2 3 4 5 6

Page 30: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=1:minIndex=1j=2 number[2]=18 < number[1]=20

minIndex = 2j=3 number[3]=40 > number[2] = 18j=4 number[4]=22 > number[2]=18j=5 number[5]=27 > number[2]=18j=6 number[6]=30 > number[2]=18

Number

402017 18 22 27 30

0 1 2 3 4 5 6

Page 31: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=1:minIndex=2temp= number[1] = 20number[1]=number[2] = 18number[2] = temp = 20;

Number

402017 18 22 27 30

0 1 2 3 4 5 6

Page 32: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=1:minIndex=2temp= number[1] = 20number[1]=number[2] = 18number[2] = temp = 20;

Number

401817 20 22 27 30

0 1 2 3 4 5 6

Page 33: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=2:minIndex=2j=3 number[3]=40 > number[2] =20j=4 number[4]=22 > number[2]=20j=5 number[5]=27 > number[2]=20j=6 number[6]=30 > number[2]=20

Number

401817 20 22 27 30

0 1 2 3 4 5 6

Page 34: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=2:minIndex=2j=3 number[3]=40 > number[2] =20j=4 number[4]=22 > number[2]=20j=5 number[5]=27 > number[2]=20j=6 number[6]=30 > number[2]=20

Number

401817 20 22 27 30

0 1 2 3 4 5 6

Page 35: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=3:minIndex=3

j=4 number[4]=22 < number[3]=40 minIndex = 4

j=5 number[5]=27 > number[4]=22j=6 number[6]=30 > number[4]=22

Number

401817 20 22 27 30

0 1 2 3 4 5 6

Page 36: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=3:minIndex=4

temp= number[3] = 40number[3]=number[4] = 22number[4] = temp = 40;

Number

221817 20 40 27 30

0 1 2 3 4 5 6

Page 37: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=4:minIndex=4j=5 number[5]=27 < number[4]=40

minIndex=5j=6 number[6]=30 > number[5]=27

Number

221817 20 40 27 30

0 1 2 3 4 5 6

Page 38: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=4:minIndex=5

temp= number[4] = 40number[4]=number[5] = 27number[5] = temp = 40;

Number

221817 20 40 27 30

0 1 2 3 4 5 6

Page 39: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=5:minIndex=5j=6 number[6]=30 < number[5]=40

minIndex=6

Number

221817 20 27 40 30

0 1 2 3 4 5 6

Page 40: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=5:minIndex=6temp= number[5] = 40number[5]=number[6] = 30number[6] = temp = 40;

Number

221817 20 27 40 30

0 1 2 3 4 5 6

Page 41: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Selection Sort

• i=5:minIndex=6temp= number[5] = 40number[5]=number[6] = 30number[6] = temp = 40;

Number

221817 20 27 30 40

0 1 2 3 4 5 6

Page 42: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Concepts1. String class, methods for String class (length,

substring,compareTo,indexOf…)Week 5 slides

2. Instantiable classes:Private/public attributes/methodsDifferent between attribute and methodsConstructorsParameters passing for methodsWeek 7-8 slides

Page 43: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Concepts3. Array:

Definition, how to declare an array, how to allocate memory, how to initialize valuesHow much memory is needed for an arrayHow to determine how many elements an array hasPassing an array to a method (passing by reference)

Week 9 slides

Page 44: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Concepts4. Search and Sorting

Linear SearchBinary Search

(Week 10-11)

Page 45: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Merge Sort

• Start=0, end = 6, mid=(6+0)/2 = 3

Number

402018 17 22 27 30

0 1 2 3 4 5 6

2018 4017 22 27 30

Page 46: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Merge Sort. Start=0, end = 3, mid=(3+0)/2 =

1

. Start=4, end =6, mid=(4+6)/2=5

2018

22 27 30

4017

Page 47: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Passing Array to Methods

• When an array is passed to a method, only its reference is passed. A copy of the array is not created in the method.

That means:we pass the identifier for that array which in fact is a reference to a start address of the array.

Page 48: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Passing Array to Methods

Assuming changeArrayValue is one method of a class named ArrayClass

public void changeArrayValue(int[] arrayChanged) {for (int i=0; i< arrayChanged.length-1; i++)arrayChanged[i] += 1;

}

We call this method as:

Page 49: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Passing Array to Methods

ArrayClass anObj = new ArrayClass();int number[5] = new int[5];for(int i=0; i<number.length; i++)

number[0] = i;

anObj.changeArrayValue(number);

Page 50: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Passing Array to Methods

for(int i=0; i<number.length; i++)number[i] = i;

anObj.changeArrayValue(number);

0 1 2 3 4

1 2 3 4 5

number

number

Page 51: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Final Exam• Section 01: MWF begins 12:05-

12:55pmMonday, May 08, 2006. 3:15-5:15pm

• Section 02: MWF begins 1:10-2pmWednesday, May 10, 2006: 1-3pm

Page 52: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

File Input output• File input: the action of reading

data from a file• File output: the action of

writing/saving data to a file• Why is it important?

. Limited memory

. Some data is needed immediately, others are needed monts/weeks/.. from now

Page 53: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

File Input output• File input: the action of reading

data from a file• File output: the action of

writing/saving data to a file• Why is it important?

. Limited memory

. Some data is needed immediately, others are needed monts/weeks/.. from now

Page 54: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

File objects• To operate on a file, we must first create a File object (from java.io) and associate this file object to a

specific file.

• How to create a file object:

File <variable_name> = new File(<filename>);

ORFile <variable name>=new File(<directory>, <file name>);

Page 55: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

File Class• Go to

http://java.sun.com/j2se/1.3/docs/api/java/io/File.html

• See the constructors of File class

File(String pathname)           Creates a new File instance by converting the given pathname string into an abstract pathname

Page 56: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Examples

File inFile = new File(“sample.dat”);

File inFile = new File(“C:/SamplePrograms/test.dat”);

Opens the file sample.dat in the current directory.

Opens the file sample.dat in the current directory.

Opens the file test.dat in the directory C:\SamplePrograms using the generic file separator / and providing the full pathname.

Opens the file test.dat in the directory C:\SamplePrograms using the generic file separator / and providing the full pathname.

Page 57: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

File myFile = new File(“C:\\mydocuments”,”sample.dat”);

(Windows)File myFile = new File(“C:/mydocuments”,”sample.dat”);

(Unix)

Example (continue)

Page 58: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

File I/O

Low level I/O High level I/O Text file I/O

Treat a fileAs a set of bytes

TreatA file As a set of data of

primitiveData type

TreatA file As a set of text

(or String)

Page 59: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Low-Level File I/O

• To read data from or write data to a file, we must create one of the Java stream objects and attach it to the file.

• A stream is a sequence of data items, usually 8-bit bytes.

• Java has two types of streams: an input stream and an output stream.

• An input stream has a source form which the data items come, and an output stream has a destination to which the data items are going.

Page 60: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Streams for Low-Level File I/O

• FileOutputStream and FileInputStream are two stream objects that facilitate file access.

• FileOutputStream allows us to output a sequence of bytes; values of data type byte.

• FileInputStream allows us to read in an array of bytes.

Page 61: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Low level data inputStep 1: Create a File object Step 2: Create a FileInputStream

objectStep 3: Declare an array to keep input

data, allocate memory for this arrayStep 4: Read data and process data if

neededStep 5: Close the file

Page 62: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Sample: Low-Level File Input

//set up file and streamFile inFile = new File("sample1.data");FileInputStream inStream = new FileInputStream(inFile);

//set up an array to read data inint fileSize = (int)inFile.length();byte[] byteArray = new byte[fileSize];

//read data in and display theminStream.read(byteArray);for (int i = 0; i < fileSize; i++) {

System.out.println(byteArray[i]);}

//input done, so close the streaminStream.close();

Page 63: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Low level data outputStep 1: Create a File object Step 2: Create a FileOutputStream

objectStep 3:Get data readyStep 4:Write data to output streamStep 5: Close the file

Page 64: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Sample: Low-Level File Output

//set up file and streamFile outFile = new File("sample1.data");

FileOutputStream outStream = new FileOutputStream( outFile );

//data to savebyte[] byteArray = {10, 20, 30, 40,

50, 60, 70, 80};

//write data to the streamoutStream.write( byteArray );

//output done, so close the streamoutStream.close();

Page 65: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Streams for High-Level File I/O

• FileOutputStream and DataOutputStream are used to output primitive data values

• FileInputStream and DataInputStream are used to input primitive data values

• To read the data back correctly, we must know the order of the data stored and their data types

Page 66: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Setting up DataOutputStream• A standard sequence to set up a DataOutputStream object:

Page 67: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Sample Outputimport java.io.*;class Ch12TestDataOutputStream { public static void main (String[] args) throws IOException {

. . . //set up outDataStream

//write values of primitive data types to the streamoutDataStream.writeInt(987654321);outDataStream.writeLong(11111111L);outDataStream.writeFloat(22222222F);outDataStream.writeDouble(3333333D);outDataStream.writeChar('A');outDataStream.writeBoolean(true);

//output done, so close the streamoutDataStream.close();

}}

Page 68: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Setting up DataInputStream

• A standard sequence to set up a DataInputStream object:

Page 69: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Sample Inputimport java.io.*;class Ch12TestDataInputStream { public static void main (String[] args) throws IOException { . . . //set up inDataStream

//read values back from the stream and display them System.out.println(inDataStream.readInt()); System.out.println(inDataStream.readLong()); System.out.println(inDataStream.readFloat()); System.out.println(inDataStream.readDouble()); System.out.println(inDataStream.readChar()); System.out.println(inDataStream.readBoolean());

//input done, so close the stream inDataStream.close(); }}

Page 70: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Reading Data Back in Right Order

• The order of write and read operations must match in order to read the stored primitive data back correctly.

Page 71: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Textfile Input and Output

• Instead of storing primitive data values as binary data in a file, we can convert and store them as a string data.– This allows us to view the file content using any text

editor• To output data as a string to file, we use a

PrintWriter object• To input data from a textfile, we use FileReader and

BufferedReader classes– From Java 5.0 (SDK 1.5), we can also use the Scanner

class for inputting textfiles

Page 72: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Read data from a text fileStep 1: Create a File object Step 2: Create a FileReader objectStep 3: Create a BufferedReader objectStep 4: Read line by line

Step 5: Convert String object to primitive data type as necessary

Step 6: Close the file

Page 73: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Create FileReader and BufferedReader objects

How to create a FileReader ojbect:FileReader <variable_name> = new FileReader(<name of a File ojbect>);

How to create a BufferedReader object:BufferedReader <variable_name> = new

BufferedReader(<name of a FileReader object);

How to read a line<bufferedReader object name>.readLine();

Page 74: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Example – Reading a text file

E:\Temp\data.dat

It's been 84 years, and I can still smell the fresh paint.

The china had never been used. The sheets had never been slept in.

Titanic was called the Ship of Dreams, and it was. It really was.

Page 75: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Example – Reading a text fileimport java.io.*;

public class FileExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\data.dat");FileReader fileReader = new FileReader(inFile);BufferedReader bufferReader = new

BufferedReader(fileReader);String inputStr;

inputStr = bufferReader.readLine();while (inputStr != null) {

System.out.println(inputStr);inputStr = bufferReader.readLine();

} // end of while

bufferReader.close();System.exit(0);

}}

Package that contains all classes for File I/O

Page 76: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Example – Reading a text fileimport java.io.*;

public class FileExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\data.dat");FileReader fileReader = new FileReader(inFile);BufferedReader bufferReader = new

BufferedReader(fileReader);String inputStr;

inputStr = bufferReader.readLine();while (inputStr != null) {

System.out.println(inputStr);inputStr = bufferReader.readLine();

} // end of while

bufferReader.close();System.exit(0);

}}

IOException (error) must be thrown from main or handle in side

this method

Page 77: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Example – Reading a text fileimport java.io.*;

public class FileExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\data.dat");FileReader fileReader = new FileReader(inFile);BufferedReader bufferReader = new

BufferedReader(fileReader);String inputStr;

inputStr = bufferReader.readLine();while (inputStr != null) {

System.out.println(inputStr);inputStr = bufferReader.readLine();

} // end of while

bufferReader.close();System.exit(0);

}}

Steps 1-3

Page 78: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Example – Reading a text fileimport java.io.*;

public class FileExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\data.dat");FileReader fileReader = new FileReader(inFile);BufferedReader bufferReader = new

BufferedReader(fileReader);String inputStr;

inputStr = bufferReader.readLine();while (inputStr != null) {

System.out.println(inputStr);inputStr = bufferReader.readLine();

} // end of whilebufferReader.close();System.exit(0);

}}

Step 4 in a while loop

Page 79: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Example – Reading a text fileimport java.io.*;

public class FileExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\data.dat");FileReader fileReader = new FileReader(inFile);BufferedReader bufferReader = new

BufferedReader(fileReader);String inputStr;

inputStr = bufferReader.readLine();while (inputStr != null) {

System.out.println(inputStr);inputStr = bufferReader.readLine();

} // end of whilebufferReader.close();System.exit(0);

}}

Step 6

Page 80: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Result

Page 81: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Write data to a text fileStep 1: Create a File object Step 2: Create a FileOutputStream

objectStep 3: Create a PrinterWriter objectStep 4: Write line(s)Step 5: Close the file

Page 82: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Create a FileOutputSTream and

PrintWriter objects• How to create a FileOutputStream objects:

FileOutputStream <variable_name> = new FileOutputStream(<name of a File object>);

• How to create a PrintWriter objectPrintWriter <variable_name> = new

PrintWriter(<name of a FileOutputStream object>);

• How to write a string to a file<A print writer object>.println(<string object name>);

More details on this link

Page 83: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Exampleimport java.io.*;

public class OutputExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\output.dat");FileOutputStream fileStream = new FileOutputStream(inFile);PrintWriter printWriter = new PrintWriter(fileStream);String inputStr;

int number[] = new int[10];for (int i=0;i<number.length; i++) {

number[i] = i+1;printWriter.println(number[i]);

}printWriter.close();System.exit(0);

}}

Page 84: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Exampleimport java.io.*;

public class OutputExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\output.dat");FileOutputStream fileStream = new FileOutputStream(inFile);PrintWriter printWriter = new PrintWriter(fileStream);String inputStr;

int number[] = new int[10];for (int i=0;i<number.length; i++) {

number[i] = i+1;printWriter.println(number[i]);

}printWriter.close();System.exit(0);

}}

Step 1-3

Page 85: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Exampleimport java.io.*;

public class OutputExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\output.dat");FileOutputStream fileStream = new FileOutputStream(inFile);PrintWriter printWriter = new PrintWriter(fileStream);String inputStr;

int number[] = new int[10];for (int i=0;i<number.length; i++) {

number[i] = i+1;printWriter.println(number[i]);

}printWriter.close();System.exit(0);

}}

Step 4(in for loop)

Page 86: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Exampleimport java.io.*;

public class OutputExample{public static void main (String[] args) throws IOException {

File inFile = new File("e:\\Temp\\output.dat");FileOutputStream fileStream = new FileOutputStream(inFile);PrintWriter printWriter = new PrintWriter(fileStream);String inputStr;

int number[] = new int[10];for (int i=0;i<number.length; i++) {

number[i] = i+1;printWriter.println(number[i]);

}printWriter.close();System.exit(0);

}}

Step 5(close file)

Page 87: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Just in time review1. Two steps must occur before we

can read data from a file:

and

A.Associate it to a fileB.Create a File object

Page 88: Selection sort and Merge sort File input/output. HW 2 – Section 02 Avg = 96/100

Just in time review2. The following two statements will

associate file 1 and file2 to the same file:File file1 = new File(“c:\\one”,”two.dat”);File file2 = new File (“C:\\one\\two.dat”)A. TrueB. False