package Semester2; import java.io.*; import java.util.ArrayList; import java.util.Random; public class Vorlesung1 { // [6 Kundennummer, 20 Nachname, 20 Vorname, 20 Straße, 5 Hausnummer, 5 PLZ, 20 Ort, int Umsatz] private ArrayList nachnamen = erstelleArrays(0); private ArrayList vornamen = erstelleArrays(1); private ArrayList strassen = erstelleArrays(2); private ArrayList plzort = erstelleArrays(3); public Vorlesung1() { this.nachnamen = erstelleArrays(0); this.vornamen = erstelleArrays(1); this.strassen = erstelleArrays(2); this.plzort = erstelleArrays(3); } public static void main(String[] args) { Vorlesung1 liste = new Vorlesung1(); try { BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in)); String laenge; System.out.println("Wie viele Testsätze: "); laenge = eingabe.readLine(); String was; System.out.println("Als CSV?"); was = eingabe.readLine(); if (was.equals("1")) { liste.mitTrennzeichen(Integer.parseInt(laenge)); } else { liste.mitLeerzeichen(Integer.parseInt(laenge)); } } catch (Exception e) { System.out.println(e.getMessage()); } } private static ArrayList erstelleArrays(int index) { ArrayList rueckgabe = new ArrayList<>(); String zeile; String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis String[] dateien = new String[]{ verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Nachnamen.txt", verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Vornamen.txt", verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "Strassen.txt", verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "PLZOrt.txt" }; try { BufferedReader leseQuelle = new LineNumberReader(new FileReader(dateien[index])); while ((zeile = leseQuelle.readLine()) != null) { rueckgabe.add(zeile); } leseQuelle.close(); } catch (Exception e) { System.out.println(e.getMessage()); } return rueckgabe; } private static String fuelleMitLeerzeichen(ArrayList liste, int laenge) { Random random = new Random(); String neu = liste.get(random.nextInt(liste.size())); if (neu.length() < laenge) { neu = neu + " ".repeat(laenge - neu.length()); } return neu; } public void mitTrennzeichen(int anzahl) { try { String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter(verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "trennzeichen.txt")); Random random = new Random(); for (int i = 0; i < anzahl; i++) { StringBuilder fertigerEintrag = new StringBuilder(); // Kundennummer fertigerEintrag.append(String.format("%06d", i)); fertigerEintrag.append("#"); // Nachname fertigerEintrag.append(nachnamen.get(random.nextInt(nachnamen.size()))); fertigerEintrag.append("#"); // Vorname fertigerEintrag.append(vornamen.get(random.nextInt(vornamen.size()))); fertigerEintrag.append("#"); // Straße fertigerEintrag.append(strassen.get(random.nextInt(strassen.size()))); fertigerEintrag.append("#"); // Hausnummer fertigerEintrag.append(String.format("%05d", random.nextInt(99999))); fertigerEintrag.append("#"); // PLZ Ort fertigerEintrag.append(plzort.get(random.nextInt(plzort.size()))); fertigerEintrag.append("#"); // Umsatz fertigerEintrag.append(String.format("%04d", random.nextInt(500) + 1500)); fertigerEintrag.append("#"); schreibeDatei.write(fertigerEintrag.toString()); schreibeDatei.newLine(); } schreibeDatei.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } public void mitLeerzeichen(int anzahl) { try { String verzeichnis = System.getProperty("user.dir"); // Aktuelles Arbeitsverzeichnis BufferedWriter schreibeDatei = new BufferedWriter(new FileWriter(verzeichnis + File.separator + "12_Dateien_Fuer_Aufgabe1" + File.separator + "festeBreite.txt")); Random random = new Random(); for (int i = 0; i < anzahl; i++) { StringBuilder fertigerEintrag = new StringBuilder(); // Kundennummer fertigerEintrag.append(String.format("%06d", i)); // Nachname fertigerEintrag.append(fuelleMitLeerzeichen(nachnamen, 20)); // Vorname fertigerEintrag.append(fuelleMitLeerzeichen(vornamen, 20)); // Straße fertigerEintrag.append(fuelleMitLeerzeichen(strassen, 20)); // Hausnummer fertigerEintrag.append(String.format("%05d", random.nextInt(99999))); // PLZ Ort fertigerEintrag.append(fuelleMitLeerzeichen(plzort, 25)); // Umsatz fertigerEintrag.append(String.format("%04d", random.nextInt(500) + 1500)); schreibeDatei.write(fertigerEintrag.toString()); schreibeDatei.newLine(); } schreibeDatei.close(); } catch (Exception e) { System.out.println(e.getMessage()); } } }