The following class demonstrates the use of Java's Format, Number, Date and Locale classes (util.*, text.*). It also shows how to serialize and de-serialize and object by implementing the Serializable interface (io.*).
Item.java
//Demonstrates: //Serialization, //Number/Currency Formatting, //Date Formatting //Locale Class import java.util.*; import java.text.*; import java.io.*; public class Item implements Serializable{ //Static method for serializing an Item public static void saveItem(Item item){ try { //record that date this item was saved item.dateUpdated = new Date(); FileOutputStream fs = new FileOutputStream(item.getName()); //write the Item object to file ObjectOutputStream os = new ObjectOutputStream(fs); os.writeObject(item); os.close(); System.out.println("Item Saved"); } catch (Exception e) { e.printStackTrace(); } } //Static method for de-serializing an Item object public static Item getItem(String name){ try { FileInputStream fis = new FileInputStream(name); ObjectInputStream ois = new ObjectInputStream(fis); Item item = (Item) ois.readObject(); ois.close(); return item; } catch (Exception e) { e.printStackTrace(); } return null; } //using final String as name to avoid serialized file name issues private final String name; private double price; private Date dateCreated; private Date dateUpdated; public Item(String name){ this.name = name; this.dateCreated = new Date(); } public static void main(String[] args){ //create an item and set it's price Item item = new Item("Flat Screen TV"); item.setPrice(19.95); System.out.println(item.getName()); //display default price System.out.println(item.getPrice()); //display price formatted in Swiss German System.out.println(item.getPriceSwissGerman()); //display default date System.out.println(item.getDateCreated()); //display date formatted in Swiss German System.out.println(item.getDateCreatedSwissGerman()); //Save this item Item.saveItem(item); //Get serialized item Item savedItem = Item.getItem("Flat Screen TV"); System.out.println("Got saved item: " + savedItem.getName()); } //Gets name of Item public String getName(){ return this.name; } //Sets price of Item public void setPrice(double price){ this.price = price; } //Gets default price of item //Default NumberFormat Currency Instance public String getPrice(){ NumberFormat nf = NumberFormat.getCurrencyInstance(); return nf.format(this.price); } //Gets price formatted in Swiss German //Uses Swiss German Locale as param to NumberFormat Currency Instance public String getPriceSwissGerman(){ Locale swissGerman = new Locale("de","CH"); NumberFormat nf = NumberFormat.getCurrencyInstance(swissGerman); return nf.format(this.price); } //Gets date created, default DateFormat public String getDateCreated(){ DateFormat df = DateFormat.getInstance(); return df.format(this.dateCreated); } //Gets date created, Swiss German Formatting //Uses a Swiss German Locale as param to DateFormat Date Instance public String getDateCreatedSwissGerman(){ Locale swissGerman = new Locale("de", "CH"); DateFormat df = DateFormat.getDateInstance(DateFormat.FULL,swissGerman); return df.format(this.dateCreated); } }





