Frage von Lexus1997, 16

Ich möchte in Java ganz viele Files erstellen und verwenden, diese sind komplett gleich aufgebaut nur der Inhalt ist anders. Wie kann man das am besten machen?

Ich hab vorerst mal versucht es mit Enums und HashMaps zu lösen, habe aber keinen schönen Weg gefunden um das zu lösen. Somit hab ich mir jetzt überlegt für jedes zu erstellende File eine eigene Class zu machen. Hierbei hab ich aber das Problem, alle auf einmal erstellen zu lassen (am besten wie aus einer Liste auslesen lassen). Desswegen das ganze etwas Detailierter: In meinem Package "Something.Files" sind die Klassen enthalten die alle sehr gleich sind (Unten ein Beispiel).

Jetzt möchte ich alle Klassen in Something.Files durchgehen und erst einmal jedes File erstellen lassen. (In jeder Class setStandard ausführen lassen) Oder auch die Variable autoSaveFile auslesen um damit dann weiter zu arbeiten.

Das Problem ist, ich weiß nicht wie ich sowas machen soll:

Something.Files.VARIABLE.setStandard();

Bitte um eure Hilfe und vielen Dank im Vorraus :)

Example File:

package Something.Files;

import org.bukkit.configuration.file.YamlConfiguration;

import java.io.File;
import java.io.IOException;

public class ExampleFile
{
    public static boolean autoSaveFile = false;
    public static boolean autoReloadFile = false;
    static String path = "plugins//MasterPlugin//";
    static String fileName = "exampleFile.yml";
    static File file = new File(path, fileName);
    static YamlConfiguration cfg;

    public static void setStandard()
    {
        loadConfigFromFile();
        cfg.options().copyDefaults(true);

        cfg.addDefault("", "");
        cfg.addDefault("", "");
        cfg.addDefault("", "");
        cfg.addDefault("", "");

        saveConfigToFile();
    }

    public static void loadConfigFromFile()
    {
        cfg = YamlConfiguration.loadConfiguration(file);
    }

    public static void saveConfigToFile()
    {
        try
        {
            cfg.save(file);
        } catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}
Antwort
von ceevee, 16

Somit hab ich mir jetzt überlegt für jedes zu erstellende File eine eigene Class zu machen. Hierbei hab ich aber das Problem, alle auf einmal erstellen zu lassen (am besten wie aus einer Liste auslesen lassen).

Das schreit geradezu danach, dass in deinen Entwurf irgendwas gehörig nicht stimmt... eine Klasse ist nicht dazu da, um konkrete Daten zu halten. Dazu erzeugt man Objekte.

Ich würde die ganzen Variablen (also autoSaveFile bis YamlConfiguration) in einem Konfigurationsobjekt speichern, dann dieses Konfigurationsobjekt an setStandard() oder eine neue Methode übergeben und dort auswerten. In der Main-Methode (oder wo auch immer du ExampleFile aufrufst), legst du dir eine Liste von Konfigurationsobjekten an, gehst die dann alle durch und übergibst jedes Einzelne an ExampleClass (welche du dann nur einmal bräuchtest) - die Aufgabe von ExampleClass wäre es, Dateien entsprechend des Konfigurationsobjektes auszuspucken.

Antwort
von Gegengift, 11

Ich möchte in Java ganz viele Files erstellen und verwenden, diese sind komplett gleich aufgebaut nur der Inhalt ist anders.

Verwenden? In Java verwendet man Klassen und Objekt. Mit Files kann man nur Daten weg speichern - verwenden kann man die in dem Sinne nicht.


Du brauchst dazu eine Klasse für alle Files. Wobei jedes File durch ein Objekt dieser Klasse repräsentiert wird. Jede Klassenvariable in der Klasse kann dann einem Inhaltsteil entsprechen. Z.B. der Anrede bei einem Serienbrief.

Antwort
von kordely, 11

Habe eine Funktion, die eine Datei aus dem Parametern herstellt. Dann kannst du sie mit verschiedene Parameter rufen, und die Dateien generieren.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten