~/

Brandon Rozek

Photo of Brandon Rozek

PhD Student @ RPI studying Automated Reasoning in AI and Linux Enthusiast.

Lecture for February 20th

Reading a File

You can get input from a file instead of from the terminal

FileInputStream fileIn = new FileInputStream("myFile.txt");
// Our familiar Scanner
Scanner scnr = new Scanner(fileIn);
// We can use our usual Scanner methods
String line = scnr.nextLine();
fileIn.close(); // Remember to close the file when you're finished with it!

Reviewing Scanner Methods

To understand some of the Scanner methods we need to be aware of the “newline” character. This character is equivalent to the Enter button on the keyboard.

scnr.nextLine() This get’s all the characters in the buffer up to the newline character.

scnr.next() Grabs the characters in the next “token”. Tokens are usually separated by any whitespace type character (spaces, enters, tabs, etc.)

Writing to a File

Prints information to a file instead of to the screen

FileOutputStream fileOut = new FileOutputStream("myOutfile.txt");
PrintWriter out = new PrintWriter(fileOut);
out.println("Print this as the first line.");
out.flush(); // Pushes the file changes to the file
fileOut.close(); // If you forget this then it won't remember your changes

Arrays

Arrays are containers of fixed size. It contains a fixed number of values of the same type. (Ex: 10 integers, 2 strings, 5 booleans)

Declaration

int[] array; // This declares an integer array

Initialization

array = new int[7]; // This states that this array can hold up to 7 integers

Storing a value in an array

int[] array = new int[7];
array[0] = 5; // Stores 5 into the first slot

Now let us attempt to retrieve the value

int temp = array[0];
System.out.println(temp); // Prints "5"

Traversing an Array

Let’s say we have the following array

int[] numbers = {3, 5, 2, 7, 9};

Let’s print out each of the values in the array

for (int i = 0; i < numbers.length; i++) {
    System.out.print("value in " + i " is " + numbers[i]);
}

Finding the maximum value in an Array

int highest = numbers[0];
for (int i = 0; i < numbers.length; i++) {
    if (numbers[i] > highest) {
        highest = numbers[x];
    }
}