2016-08-02 3 views
0

Ich schreibe gerade ein Java-Programm, das Ziele beinhaltet. Es ist im Grunde eine To-Do-Liste. Jedes Ziel hat ein paar Strings, wie Name, Beschreibung usw. Ich kann diese Ziele in einer Datei speichern und laden. Mein Problem war das Trennen der Saiten - ich konnte mir kein Zeichen vorstellen, das nicht in der Saite selbst sein könnte. Ich habe jedem String die Länge und dann einen Doppelpunkt vorangestellt.Wie würden Sie Strings in einer Datei trennen, wenn sie beliebige Zeichen enthalten könnten?

Ich bin sicher, dass es etwas in der Java-API gibt, die das handhaben wird, wie ObjectOutputStream. Ich bin jedoch neugierig auf den "allgemeinen Fall". Dies muss ein Problem für jedes Programm sein, das Zeichenfolgen aus einer Datei speichert und lädt, ohne etwas über die Zeichenfolge annehmen zu können. Gibt es einen besseren Weg?

+2

Es gibt viele Optionen und Formate. Denken Sie an JSON oder CSV, die meisten Formate bezeichnen eine Zeichenfolge, indem sie den Text mit doppelten Anführungszeichen umgeben. –

+1

Fällt unter "zu breit", würde ich sagen, aber Sie können die Ansätze wahrscheinlich zusammenfassen als "[verwendet Escape-Zeichen] (https://en.wikipedia.org/wiki/Escape_character)" (einschließlich JSON, CSV,. ..) und "type-length-value encoding" (zB ASN.1 DER und das [Java Serialization Format] (https://docs.oracle.com/javase/6/docs/platform/serialization/spec/protocol. html # 5849)). – dhke

+0

Mein Problem ist, dass die Zeichenfolge selbst Kommas oder Anführungszeichen enthalten kann. Ich habe überlegt, ein Nullzeichen als Trennzeichen zu verwenden, aber es stellt sich heraus, dass so ziemlich alles in ein Textfeld eingegeben werden kann. – errorc2146

Antwort

2

Es gibt einige Möglichkeiten, um Ihren Fall zu behandeln, z:

  1. Ihre String mit so etwas wie Base64-Codierung
  2. ein gut definiertes Format Auftragen, z JSON oder CSV

Es Tonnen Werkzeuge unterstützen Sie mit:

+1

Keine Codierung in Frage noch Antwort. Gut .. –

Verwandte Themen