Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. import java.io.FileInputStream;
  2. import java.io.FileOutputStream;
  3. import java.io.FileReader;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;
  6. import java.util.ArrayList;
  7. import java.util.Collections;
  8. import java.util.List;
  9. import java.util.Scanner;
  10. import javax.sound.sampled.LineListener;
  11. import java.io.BufferedReader;
  12. import java.io.File;
  13.  
  14. public class HighscoreList {
  15. public static void main(String[] args) {
  16. System.out.println("Welcome to the highscore list program");
  17. boolean finished = false;
  18. Scanner input = new Scanner(System.in);
  19. ArrayList<HighscoreItem> list = new ArrayList<HighscoreItem>();
  20. HighscoreItem item = new HighscoreItem("null", 0);
  21.  
  22. while (!finished) {
  23. System.out.println("---HighScore menu---\n"//Skriver ut menyn
  24. + "1. Insert new item\n" + "2. Print list\n"
  25. + "3. Reset list\n"
  26. + "4. Quit\n"
  27. + "Please make your choice and press enter: ");
  28.  
  29. switch (input.nextInt()) {
  30. case 1:
  31. System.out.print("Please enter name: ");
  32. String name = input.next();
  33. System.out.print("Please enter score: ");
  34. int score = input.nextInt();
  35. list.add(new HighscoreItem(name, score));
  36. save(list, "list.txt");
  37. break;
  38. case 2:
  39. print(list, item);
  40. break;
  41. case 3:
  42. name = "unknown";
  43. score = 0;
  44. for (int i = 0; i < 5; i++){
  45. list.add(new HighscoreItem(name, score));
  46. }
  47. save(list, "list.txt");
  48. System.out.println("The highscore list has been reset.");
  49. break;
  50.  
  51. }
  52. }
  53. }
  54.  
  55. public static void save(ArrayList<HighscoreItem> list, String filename) {
  56.  
  57. try {
  58. File saveFile = new File("list.txt");
  59. FileOutputStream file = new FileOutputStream(saveFile);
  60. ObjectOutputStream out = new ObjectOutputStream(file);
  61. if (!saveFile.exists()) {// om filen inte finns så skapas filen
  62. saveFile.createNewFile();
  63. }
  64.  
  65. list = sort(list);
  66. for (HighscoreItem item : list) {
  67. out.writeObject(item);
  68. }
  69.  
  70. out.writeObject(null);
  71. out.close();
  72.  
  73. } catch (Exception e) {
  74. System.out.println("Fel med save");
  75. }
  76. }
  77.  
  78. public static void print(ArrayList<HighscoreItem> list, HighscoreItem item) {
  79.  
  80. System.out.println("---The highscore list---");
  81. ArrayList<HighscoreItem> loaded = load("list.txt");
  82. list = list.subList(0, 5);
  83. for (int i = 0; i < loaded.size(); i++) {
  84. item = loaded.get(i);
  85. System.out.println((i + 1) + ". " + item.getName() + " " + item.getScore());
  86. }
  87. }
  88.  
  89. public static ArrayList<HighscoreItem> sort(ArrayList<HighscoreItem> list) {
  90. Collections.sort(list);
  91. return list;
  92. }
  93.  
  94. public static ArrayList<HighscoreItem> load(String filename) {
  95.  
  96. ArrayList<HighscoreItem> list = new ArrayList<HighscoreItem>();
  97. try {
  98. FileInputStream file = new FileInputStream(filename);
  99. ObjectInputStream in = new ObjectInputStream(file);
  100.  
  101. while (true) {
  102. Object o = in.readObject();
  103. if (o != null) {
  104. try {
  105. HighscoreItem item = (HighscoreItem) o;
  106. list.add(item);
  107. } catch (Exception e2) {
  108. System.out.println("Fel i läsningenn från filen");
  109. }
  110. } else {
  111. break;
  112. }
  113. }
  114. in.close();
  115.  
  116. } catch (Exception e) {
  117. System.out.println("Fel med load");
  118. }
  119. return list;
  120. }
  121. }
  122.  
  123. /*
  124. * try = markera start för ett block som kopplas mot felhantering catch = vad
  125. * som ska göras om fel hittas? throw = kasta exception finally = Exception
  126. * klass = getMessage(), getClass(), printStackTrace() Strömmar: System.in,
  127. * System.out, Scanner java.io.file = kan användas för att se om en fil finns
  128. *
  129. * Nästa föreläsning
  130. *
  131. *
  132. *
  133. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement