Advertisement
Guest User

leaderverwaltung

a guest
Oct 4th, 2014
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.68 KB | None | 0 0
  1. /**
  2.  * Zunächst die Imports:
  3.  * - java.io.File: Die Klasse zum Umgang mit Dateien.
  4.  * - java.io.FileNotFoundException: Klasse der Exception falls die zu öffnende Datei nicht lesbar ist. (Rechte-Fehler / Datei existiert nicht)
  5.  * - java.io.PrintWriter: Die Klasse benötigen wir später um die Datei zu beschreiben.
  6.  * - java.util.Scanner: Diese Klasse bietet möglich zum einlesen von Daten.
  7.  */
  8.  
  9. import java.io.File;
  10. import java.io.FileNotFoundException;
  11. import java.io.PrintWriter;
  12. import java.util.Scanner;
  13.  
  14. public class wrfiles {
  15.  
  16.     private static String[][] leaders = null;
  17.     private static File mFile = null;
  18.  
  19.     public static void main(String[] args) {
  20.         String mAbsPfad = "file.txt";
  21.         mFile = new File(mAbsPfad);
  22.         einlesen();
  23.         Scanner sc = new Scanner(System.in);
  24.         showMenu();
  25.         while (sc.hasNextInt()) {
  26.             switch (sc.nextInt()) {
  27.             case 1: {
  28.                 ausgeben();
  29.             }
  30.                 break;
  31.             case 2: {
  32.                 System.out
  33.                         .println("FraktionsID (aus Liste bei Ausgabe - -1 zum abbrechen): ");
  34.                 String s = sc.next();
  35.                 int fId = Integer.parseInt(s);
  36.                 if (fId != -1 && fId < leaders.length) {
  37.                     System.out.println("Leadername: ");
  38.                     leaders[fId][1] = sc.next();
  39.                     System.out
  40.                             .println("Erfolgreich geändert! Speichern nicht vergessen!");
  41.                 }
  42.             }
  43.                 break;
  44.             case 3: {
  45.                 String[][] tmpLeaders = new String[leaders.length + 1][2];
  46.                 for (int i = 0; i < leaders.length; i++) {
  47.                     tmpLeaders[i][0] = leaders[i][0];
  48.                     tmpLeaders[i][1] = leaders[i][1];
  49.                 }
  50.                 System.out.println("Fraktionsname: ");
  51.                 tmpLeaders[leaders.length][0] = sc.next();
  52.                 System.out.println("Leadername: ");
  53.                 tmpLeaders[leaders.length][1] = sc.next();
  54.                 leaders = tmpLeaders;
  55.                 System.out
  56.                         .println("Fraktion hinzugefügt! Speichern nicht vergessen!");
  57.             }
  58.                 break;
  59.             case 4: {
  60.                 System.out.println("Zu löschende Fraktion (ID): ");
  61.                 int fId = Integer.parseInt(sc.next());
  62.                 char answer = 0;
  63.                 if(fId >= leaders.length) break;
  64.                 do{
  65.                     System.out.printf("Wollen Sie die Fraktion %s (Leader: %s) wirklich löschen? (j/n)%n", leaders[fId][0], leaders[fId][1]);
  66.                     answer = sc.next().charAt(0);
  67.                     System.out.println(answer);
  68.                 } while(answer != 'j' && answer != 'n');
  69.                 if(answer == 'j'){
  70.                     String[][] tmpLeaders = new String[leaders.length-1][2];
  71.                     for(int i = 0, j = 0; i < leaders.length; i++, j++){
  72.                         if(i == fId) j--;
  73.                         else{
  74.                             tmpLeaders[j][0] = leaders[i][0];
  75.                             tmpLeaders[j][1] = leaders[i][1];
  76.                         }
  77.                     }
  78.                     leaders = tmpLeaders;
  79.                     System.out.println("Fraktion gelöscht!");
  80.                 }
  81.             }
  82.                 break;
  83.             case 5: {
  84.                 speichern();
  85.             }
  86.                 break;
  87.             case 6: {
  88.                 einlesen();
  89.             }
  90.                 break;
  91.             }
  92.             showMenu();
  93.         }
  94.     }
  95.  
  96.     private static void einlesen() {
  97.         try {
  98.             Scanner mIn = new Scanner(mFile);
  99.             /*
  100.              * Beispiel - Leaderverwaltung Datei Struktur: Fraktion, Leadername
  101.              */
  102.             // Anzahl der Zeilen zählen um die Größe des Arrays zu bestimmen.
  103.             int count = 0;
  104.             while (mIn.hasNextLine()) {
  105.                 count++;
  106.                 mIn.nextLine();
  107.             }
  108.             mIn.close();
  109.             mIn = new Scanner(mFile);
  110.             leaders = new String[count][2];
  111.             for (int i = 0; i < leaders.length; i++) {
  112.                 String line = mIn.nextLine();
  113.                 int trennerpos = line.indexOf(",");
  114.                 leaders[i][0] = line.substring(0, trennerpos);
  115.                 leaders[i][1] = line.substring(trennerpos + 2, line.length());
  116.             }
  117.         } catch (FileNotFoundException e) {
  118.             System.out.println("Datei " + mFile.getName() + " nicht gefunden!");
  119.         }
  120.     }
  121.  
  122.     private static void speichern() {
  123.         try {
  124.             PrintWriter mOut = new PrintWriter(mFile);
  125.             for (int i = 0; i < leaders.length; i++) {
  126.                 if (i != leaders.length - 1)
  127.                     mOut.printf("%s, %s%n", leaders[i][0], leaders[i][1]);
  128.                 else
  129.                     // Damit keine weitere Leerzeile am Ende der Datei folgt!
  130.                     mOut.printf("%s, %s", leaders[i][0], leaders[i][1]);
  131.             }
  132.             mOut.close();
  133.         } catch (FileNotFoundException e) {
  134.             System.out.println("Datei " + mFile.getName() + " nicht gefunden!");
  135.         }
  136.     }
  137.  
  138.     private static void ausgeben() {
  139.         if (leaders != null) {
  140.             for (int i = 0; i < leaders.length; i++)
  141.                 System.out.printf("%d\t-\t%-20.20s-\t%s%n", i, leaders[i][0],
  142.                         leaders[i][1]);
  143.         }
  144.     }
  145.  
  146.     private static void showMenu() {
  147.         System.out.println("/********************************");
  148.         System.out.println("* Erklärung:");
  149.         System.out.println("* 1 - Ausgeben");
  150.         System.out.println("* 2 - Leader ändern");
  151.         System.out.println("* 3 - Fraktion hinzufügen");
  152.         System.out.println("* 4 - Fraktion löschen");
  153.         System.out.println("* 5 - Speichern");
  154.         System.out.println("* 6 - Neu einlesen");
  155.         System.out.println("********************************/");
  156.     }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement