Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.FileReader;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Scanner;
- import javax.sound.sampled.LineListener;
- import java.io.BufferedReader;
- import java.io.File;
- public class HighscoreList {
- public static void main(String[] args) {
- System.out.println("Welcome to the highscore list program");
- boolean finished = false;
- Scanner input = new Scanner(System.in);
- ArrayList<HighscoreItem> list = new ArrayList<HighscoreItem>();
- HighscoreItem item = new HighscoreItem("null", 0);
- while (!finished) {
- System.out.println("---HighScore menu---\n"//Skriver ut menyn
- + "1. Insert new item\n" + "2. Print list\n"
- + "3. Reset list\n"
- + "4. Quit\n"
- + "Please make your choice and press enter: ");
- switch (input.nextInt()) {
- case 1:
- System.out.print("Please enter name: ");
- String name = input.next();
- System.out.print("Please enter score: ");
- int score = input.nextInt();
- list.add(new HighscoreItem(name, score));
- save(list, "list.txt");
- break;
- case 2:
- print(list, item);
- break;
- case 3:
- name = "unknown";
- score = 0;
- for (int i = 0; i < 5; i++){
- list.add(new HighscoreItem(name, score));
- }
- save(list, "list.txt");
- System.out.println("The highscore list has been reset.");
- break;
- }
- }
- }
- public static void save(ArrayList<HighscoreItem> list, String filename) {
- try {
- File saveFile = new File("list.txt");
- FileOutputStream file = new FileOutputStream(saveFile);
- ObjectOutputStream out = new ObjectOutputStream(file);
- if (!saveFile.exists()) {// om filen inte finns så skapas filen
- saveFile.createNewFile();
- }
- list = sort(list);
- for (HighscoreItem item : list) {
- out.writeObject(item);
- }
- out.writeObject(null);
- out.close();
- } catch (Exception e) {
- System.out.println("Fel med save");
- }
- }
- public static void print(ArrayList<HighscoreItem> list, HighscoreItem item) {
- System.out.println("---The highscore list---");
- ArrayList<HighscoreItem> loaded = load("list.txt");
- list = list.subList(0, 5);
- for (int i = 0; i < loaded.size(); i++) {
- item = loaded.get(i);
- System.out.println((i + 1) + ". " + item.getName() + " " + item.getScore());
- }
- }
- public static ArrayList<HighscoreItem> sort(ArrayList<HighscoreItem> list) {
- Collections.sort(list);
- return list;
- }
- public static ArrayList<HighscoreItem> load(String filename) {
- ArrayList<HighscoreItem> list = new ArrayList<HighscoreItem>();
- try {
- FileInputStream file = new FileInputStream(filename);
- ObjectInputStream in = new ObjectInputStream(file);
- while (true) {
- Object o = in.readObject();
- if (o != null) {
- try {
- HighscoreItem item = (HighscoreItem) o;
- list.add(item);
- } catch (Exception e2) {
- System.out.println("Fel i läsningenn från filen");
- }
- } else {
- break;
- }
- }
- in.close();
- } catch (Exception e) {
- System.out.println("Fel med load");
- }
- return list;
- }
- }
- /*
- * try = markera start för ett block som kopplas mot felhantering catch = vad
- * som ska göras om fel hittas? throw = kasta exception finally = Exception
- * klass = getMessage(), getClass(), printStackTrace() Strömmar: System.in,
- * System.out, Scanner java.io.file = kan användas för att se om en fil finns
- *
- * Nästa föreläsning
- *
- *
- *
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement