Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Minecraft
You last visited: Today at 17:16

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



BufferedWriter vs YAMLConfiguration

Discussion on BufferedWriter vs YAMLConfiguration within the Minecraft forum part of the Other Online Games category.

Reply
 
Old   #1

 
Hypnotizer.'s Avatar
 
elite*gold: 0
Join Date: Aug 2013
Posts: 518
Received Thanks: 65
BufferedWriter vs YAMLConfiguration

Aloha,

ich würde gerne ein File als UTF8 abspeichern und benutze dazu den BufferedWriter.
Code:
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), Charset.forName("UTF-8")));
Nun möchte ich sehr gerne ä, ö, ü's uvm. verwenden und das ganze würde ich so anstellen
Code:
w.write("Dies ist ein Text in einer Zeile");
Nun gibt es ja bei der YAMLConfiguration so ein nettes .set(Pfad, Object), welches einen Namen bzw String bereitstellt, durch welchen man den Pfad setzen oder abfragen kann. Wenn ich nun mit dem BW eine Zeile ausgebe, dann habe ich keinen String vor dem Text, mitdem ich die Zeile setzen / bekommen kann. Sollte ich das ganze mit .set erledigen, dann werden die Umlaute etc. nicht vernünftig gesetzt. Gibt es andere Möglichkeiten oder gibts da Fehler meinerseits?

Code:
YamlConfiguration cfg = YamlConfiguration.loadConfiguration(file);
cfg.set("Settings.maxplayer", maxPlayer);
Gruß,
cen0x
Hypnotizer. is offline  
Old 11/20/2014, 09:45   #2
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
Das Problem an der YamlConfiguration bzw. der FileConfiguration ist, dass sie den Standardzeichensatz des Betriebsystems verwendet.

Wenn das Plugin jetzt nur für dich ist und dein Problem darin besteht, dass Strings auf deinem Entwicklerpc (Windows) und deinem Server (Linux) unterschiedlich aussehen weil die Sonderzeichen falsch dargestellt werden, dann würde es reichen wenn du auf die richtige Darstellung auf deinem pc verzichten kannst und nur den Zeichensatz des Servers für die Standard-Dateien verwendest.

Eine andere Möglichkeit wäre, dass du es dir angepasst neu schreibst. Alle Klassen bis zur MemoryConfiguration haben nichts mit dem Zeichensatz zutun. Der Zeichensatz kommt erst in der FileConfiguration dazu, welche für das Laden und Speichern der Datei verantwortlich ist und betrifft dadurch auch die YamlConfiguration.
Ich würde also vorschlagen, dass du dir diese beiden Klassen ansiehst und mit den Sachen die du brauchst eine neue Klasse schreibst. Die YAML-Funktionen kannst genau wie die FileConfiguration einfach von der MemoryConfiguration erben.

, ,
ComputerBaer is offline  
Thanks
1 User
Old 11/21/2014, 14:48   #3

 
Hypnotizer.'s Avatar
 
elite*gold: 0
Join Date: Aug 2013
Posts: 518
Received Thanks: 65
Ich habe mir das ein wenig angeschaut und muss ehrlich sagen, dass ich da nicht wirklich durchblicke. Würdest du mir etwas behilflich sein und auf die Sprünge helfen?
Hypnotizer. is offline  
Old 11/21/2014, 19:35   #4
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
Uff, da verlangst du etwas ...

Code:
public class MyFileConfiguration extends MemoryConfiguration {
    public void save() {
        String data = saveToString();
        // data in UTF8 in Datei schreiben
    }

    public void load() {
        // data in UTF8 aus Datei lesen
        loadFromString(data);
    }
}
saveToString und loadFromString kannst du imgrunde mit allen dazugehörigen Methoden aus der YamlConfiguration kopieren (oder selbst neu schreiben). Du kannst die beiden natürlich auch in load und save einbauen.
Irgendwelche abstracten Methoden, die noch nicht implementiert sind, muss du natürlich auch noch bei dir einbauen, falls vorhanden.
ComputerBaer is offline  
Reply




All times are GMT +1. The time now is 17:17.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.