Chapter 14:

http://www.headfirstlabs.com/books/hfjava/

Or google that phrase:

https://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/

https://www.amazon.com/gp/product/0984782850/ref=s9_simh_gw_p14_d0_i2?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=desktop-1&pf_rd_r=05PTFEWQV5PS5B7538S5&pf_rd_t=36701&pf_rd_p=2128432422&pf_rd_i=desktop

https://www.cs.indiana.edu/classes/c212-dgerman/fall2016/resources/007.pdf

Let's examine writing and reading a data structure from a file: 

1974 George Nakashima End Table
Chinese Wooden Guanyin Figure (1200-1500)
White Jade Mounted Cigarette Box
Hawaiian Kou Bowl, ca. 1840
Porcelain Cabaret Coffee Set, ca. 1900
French Crystal Regulator, ca. 1900
Pocket Watch & Chatelaine, ca. 1790
Fremont Ellis Painting
1821 U.S. Citizenship Certificate
Late Period Egyptian Bronze Falcon
Dr. Seuss "Kangaroo Bird," ca. 1938

-bash-4.2$ cd c212-workspace/
-bash-4.2$ clear
-bash-4.2$ pwd
/u/dgerman/c212-workspace
-bash-4.2$ mkdir 12072016
-bash-4.2$
-bash-4.2$ cd 12072016/
-bash-4.2$ mkdir one
-bash-4.2$ cd one
-bash-4.2$ nano -w inventory.txt
-bash-4.2$ cat inventory.txt
1974 George Nakashima End Table
Chinese Wooden Guanyin Figure (1200-1500)
White Jade Mounted Cigarette Box
Hawaiian Kou Bowl, ca. 1840
Porcelain Cabaret Coffee Set, ca. 1900
French Crystal Regulator, ca. 1900
Pocket Watch & Chatelaine, ca. 1790
Fremont Ellis Painting
1821 U.S. Citizenship Certificate
Late Period Egyptian Bronze Falcon
Dr. Seuss "Kangaroo Bird," ca. 1938
-bash-4.2$ nano -w inventory.txt
-bash-4.2$ cat inventory.txt
1974 George Nakashima End Table
Chinese Wooden Guanyin Figure (1200-1500)
White Jade Mounted Cigarette Box
Hawaiian Kou Bowl, ca. 1840
Porcelain Cabaret Coffee Set, ca. 1900
French Crystal Regulator, ca. 1900
Pocket Watch & Chatelaine, ca. 1790
Fremont Ellis Painting
1821 U.S. Citizenship Certificate
Late Period Egyptian Bronze Falcon
Dr. Seuss "Kangaroo Bird," ca. 1938
Alfons Walde Oil Painting, ca. 1935
-bash-4.2$

-bash-4.2$ pwd
/u/dgerman/c212-workspace/12072016/one
-bash-4.2$ nano -w One.java
-bash-4.2$ javac One.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
One.java:5: error: cannot find symbol
    Scanner a = new Scanner(new File(args[0]));
    ^
  symbol:   class Scanner
  location: class One
One.java:5: error: cannot find symbol
    Scanner a = new Scanner(new File(args[0]));
                    ^
  symbol:   class Scanner
  location: class One
2 errors
-bash-4.2$ nano -w One.java
-bash-4.2$ javac One.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
-bash-4.2$ java One votes.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
Exception in thread "main" java.io.FileNotFoundException: votes.txt (No such file or directory)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(FileInputStream.java:195)
        at java.io.FileInputStream.<init>(FileInputStream.java:138)
        at java.util.Scanner.<init>(Scanner.java:611)
        at One.main(One.java:6)
-bash-4.2$ java One inventory.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
1974 George Nakashima End Table
Chinese Wooden Guanyin Figure (1200-1500)
White Jade Mounted Cigarette Box
Hawaiian Kou Bowl, ca. 1840
Porcelain Cabaret Coffee Set, ca. 1900
French Crystal Regulator, ca. 1900
Pocket Watch & Chatelaine, ca. 1790
Fremont Ellis Painting
1821 U.S. Citizenship Certificate
Late Period Egyptian Bronze Falcon
Dr. Seuss "Kangaroo Bird," ca. 1938
Alfons Walde Oil Painting, ca. 1935
-bash-4.2$ cat One.java
import java.io.*;
import java.util.*;

public class One {
  public static void main(String[] args) throws Exception {
    Scanner a = new Scanner(new File(args[0]));
    while (a.hasNextLine()) {
      System.out.println( a.nextLine() );
    }
  }
}
-bash-4.2$

-bash-4.2$ nano -w One.java
-bash-4.2$ cat One.java
import java.io.*;
import java.util.*;

public class One {
  public static void main(String[] args) throws Exception {
    Scanner a = new Scanner(new File(args[0]));
    Map<String, Integer> b = new HashMap<String, Integer>();
    while (a.hasNextLine()) {
      // System.out.println( a.nextLine() );
      b.put(a.nextLine(), 10);
    }
    System.out.println( b );
  }
}
-bash-4.2$

-bash-4.2$ javac One.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
-bash-4.2$ java One inventory.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
{French Crystal Regulator, ca. 1900=10, Hawaiian Kou Bowl, ca. 1840=10, 1821 U.S. Citizenship Certificate=10, Alfons Walde Oil Painting, ca. 1935=10, Late Period Egyptian Bronze Falcon=10, Fremont Ellis Painting=10, White Jade Mounted Cigarette Box=10, Dr. Seuss "Kangaroo Bird," ca. 1938=10, Pocket Watch & Chatelaine, ca. 1790=10, Chinese Wooden Guanyin Figure (1200-1500)=10, Porcelain Cabaret Coffee Set, ca. 1900=10, 1974 George Nakashima End Table=10}
-bash-4.2$
-bash-4.2$ javac One.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
-bash-4.2$ java One inventory.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
{French Crystal Regulator, ca. 1900=10, Hawaiian Kou Bowl, ca. 1840=10, 1821 U.S. Citizenship Certificate=10, Alfons Walde Oil Painting, ca. 1935=10, Late Period Egyptian Bronze Falcon=10, Fremont Ellis Painting=10, White Jade Mounted Cigarette Box=10, Dr. Seuss "Kangaroo Bird," ca. 1938=10, Pocket Watch & Chatelaine, ca. 1790=10, Chinese Wooden Guanyin Figure (1200-1500)=10, Porcelain Cabaret Coffee Set, ca. 1900=10, 1974 George Nakashima End Table=10}
-bash-4.2$

-bash-4.2$ nano -w One.java
-bash-4.2$ javac One.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
-bash-4.2$ ls -l
total 12
-rw-r--r-- 1 dgerman faculty  409 Dec  7 10:08 inventory.txt
-rw-r--r-- 1 dgerman faculty 1099 Dec  7 10:24 One.class
-rw-r--r-- 1 dgerman faculty  527 Dec  7 10:23 One.java
-bash-4.2$ java One inventory.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
{French Crystal Regulator, ca. 1900=10, Hawaiian Kou Bowl, ca. 1840=10, 1821 U.S. Citizenship Certificate=10, Alfons Walde Oil Painting, ca. 1935=10, Late Period Egyptian Bronze Falcon=10, Fremont Ellis Painting=10, White Jade Mounted Cigarette Box=10, Dr. Seuss "Kangaroo Bird," ca. 1938=10, Pocket Watch & Chatelaine, ca. 1790=10, Chinese Wooden Guanyin Figure (1200-1500)=10, Porcelain Cabaret Coffee Set, ca. 1900=10, 1974 George Nakashima End Table=10}
-bash-4.2$ ls -l
total 16
-rw-r--r-- 1 dgerman faculty  647 Dec  7 10:24 database
-rw-r--r-- 1 dgerman faculty  409 Dec  7 10:08 inventory.txt
-rw-r--r-- 1 dgerman faculty 1099 Dec  7 10:24 One.class
-rw-r--r-- 1 dgerman faculty  527 Dec  7 10:23 One.java
-bash-4.2$

-bash-4.2$ javac One.java
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
-bash-4.2$ ls -l
total 12
-rw-r--r-- 1 dgerman faculty  409 Dec  7 10:08 inventory.txt
-rw-r--r-- 1 dgerman faculty 1099 Dec  7 10:24 One.class
-rw-r--r-- 1 dgerman faculty  527 Dec  7 10:23 One.java
-bash-4.2$ java One inventory.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
{French Crystal Regulator, ca. 1900=10, Hawaiian Kou Bowl, ca. 1840=10, 1821 U.S. Citizenship Certificate=10, Alfons Walde Oil Painting, ca. 1935=10, Late Period Egyptian Bronze Falcon=10, Fremont Ellis Painting=10, White Jade Mounted Cigarette Box=10, Dr. Seuss "Kangaroo Bird," ca. 1938=10, Pocket Watch & Chatelaine, ca. 1790=10, Chinese Wooden Guanyin Figure (1200-1500)=10, Porcelain Cabaret Coffee Set, ca. 1900=10, 1974 George Nakashima End Table=10}
-bash-4.2$ ls -l
total 16
-rw-r--r-- 1 dgerman faculty  647 Dec  7 10:24 database
-rw-r--r-- 1 dgerman faculty  409 Dec  7 10:08 inventory.txt
-rw-r--r-- 1 dgerman faculty 1099 Dec  7 10:24 One.class
-rw-r--r-- 1 dgerman faculty  527 Dec  7 10:23 One.java
-bash-4.2$ clear
-bash-4.2$ ls -l
total 16
-rw-r--r-- 1 dgerman faculty  647 Dec  7 10:24 database
-rw-r--r-- 1 dgerman faculty  409 Dec  7 10:08 inventory.txt
-rw-r--r-- 1 dgerman faculty 1099 Dec  7 10:24 One.class
-rw-r--r-- 1 dgerman faculty  527 Dec  7 10:23 One.java
-bash-4.2$ more inventory.txt
1974 George Nakashima End Table
Chinese Wooden Guanyin Figure (1200-1500)
White Jade Mounted Cigarette Box
Hawaiian Kou Bowl, ca. 1840
Porcelain Cabaret Coffee Set, ca. 1900
French Crystal Regulator, ca. 1900
Pocket Watch & Chatelaine, ca. 1790
Fremont Ellis Painting
1821 U.S. Citizenship Certificate
Late Period Egyptian Bronze Falcon
Dr. Seuss "Kangaroo Bird," ca. 1938
Alfons Walde Oil Painting, ca. 1935
-bash-4.2$ more database
▒▒
▒▒8dFactorI--More--(22%)
tting, ca. 1935qe Mounted Cigarette Boxqe, ca. 1790qca. 1900q
-bash-4.2$
-bash-4.2$ man file
-bash-4.2$ file One.java
One.java: C source, ASCII text
-bash-4.2$ file One.class
One.class: compiled Java class data, version 52.0 (Java 1.8)
-bash-4.2$ file inventory.txt
inventory.txt: ASCII text
-bash-4.2$ file database
database: Java serialization data, version 5
-bash-4.2$ ls ~/.hyplan/fall2016/images/jfarrer.jpg
/u/dgerman/.hyplan/fall2016/images/jfarrer.jpg
-bash-4.2$ file ~/.hyplan/fall2016/images/jfarrer.jpg
/u/dgerman/.hyplan/fall2016/images/jfarrer.jpg: JPEG image data, JFIF standard 1.01, comment: "LEAD Technologies Inc. V1.01"
-bash-4.2$

https://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html

-bash-4.2$ cat Two.java
import java.io.*;
import java.util.*;

public class Two {
  public static void main(String[] args) throws FileNotFoundException,
                                                IOException,
                                                ClassNotFoundException {
    FileInputStream fis = new FileInputStream("database");
    ObjectInputStream ois = new ObjectInputStream(fis);
    Map<String, Integer> a = (HashMap<String, Integer>) ois.readObject();

    // int i = ois.readInt();
    // String today = (String) ois.readObject();
    // Date date = (Date) ois.readObject();

    ois.close();

    System.out.println( a );

 }
}
-bash-4.2$ java Two
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
{Hawaiian Kou Bowl, ca. 1840=10, Fremont Ellis Painting=10, Pocket Watch & Chatelaine, ca. 1790=10, French Crystal Regulator, ca. 1900=10, 1821 U.S. Citizenship Certificate=10, Alfons Walde Oil Painting, ca. 1935=10, Late Period Egyptian Bronze Falcon=10, White Jade Mounted Cigarette Box=10, Dr. Seuss "Kangaroo Bird," ca. 1938=10, Chinese Wooden Guanyin Figure (1200-1500)=10, Porcelain Cabaret Coffee Set, ca. 1900=10, 1974 George Nakashima End Table=10}
-bash-4.2$ java One inventory.txt
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
{French Crystal Regulator, ca. 1900=10, Hawaiian Kou Bowl, ca. 1840=10, 1821 U.S. Citizenship Certificate=10, Alfons Walde Oil Painting, ca. 1935=10, Late Period Egyptian Bronze Falcon=10, Fremont Ellis Painting=10, White Jade Mounted Cigarette Box=10, Dr. Seuss "Kangaroo Bird," ca. 1938=10, Pocket Watch & Chatelaine, ca. 1790=10, Chinese Wooden Guanyin Figure (1200-1500)=10, Porcelain Cabaret Coffee Set, ca. 1900=10, 1974 George Nakashima End Table=10}
-bash-4.2$

So this completes the database research issue. 

--

Minute paper: name, what progress since Monday?