'überlange' Strings >255 , wie speichern?

Hallo,

diese Frage dürfte für Profis ein müses Lächeln kosten, ich komme da aber z.Z. nicht mehr weiter. Wie verarbeite/speichere ich intern JavaStringts die länger als 255 Zeichen sind. Und zwar möchte ich richtigen Text zwischen 1 und mehreren hundert Kilobytes in Java aus einer Datenbank auslesen. Methoden gibts dafür per ASCIIStream und ein Array.
(Anzumerken ist noch, dass ich die Daten darin auch ändern möchte = Ersetzen von Teilzeichenketten…)

Jetzt könntei ich den ASCII-Stream in ein StringBuffer-Objekt umwandeln lassen.
Aber wie lange können den StringBuffer Objekte (deren Inhalt maximal sein?) Das sind doch genauso Strings? Ich hab leider keine Infos zu diesem StringBuffer gefunden, wie lange die maximal sein können.

Oder sollte man das direkt einem BufferedWriter unterbringen? ODer in einem CharArray. Allerdings ist ja ein BufferedWriter nnicth dafür gedacht Daten zu „speichern“. Wenn das Array voll ist, „flushed“ der mir ja automatisch die ganzen Daten raus? Puh.

Bin für jeden Tip dankbar!
Julian

Hallo,

diese Frage dürfte für Profis ein müses Lächeln kosten, ich
komme da aber z.Z. nicht mehr weiter. Wie verarbeite/speichere
ich intern JavaStringts die länger als 255 Zeichen sind. Und
zwar möchte ich richtigen Text zwischen 1 und mehreren hundert
Kilobytes in Java aus einer Datenbank auslesen. Methoden gibts
dafür per ASCIIStream und ein Array.
(Anzumerken ist noch, dass ich die Daten darin auch ändern
möchte = Ersetzen von Teilzeichenketten…)

Woher hast du denn, dass Strings auf eine Länge von 255 Zeichen begrenzt sind?

Ich habe selber schon ganze XML Dateien in einen String gelesen, um sie dann wieterverarbeitenzu können.

/Dirk

Thanks:wink:
Hallo Dirk!

!vielen Dank für die Antwort!

Also man findet im Internet auch zu den dümmsten Fragen eine entsprechende Antwort. Irgendwie dachte ich, muss ein String doch eine maximale Kapazität/Länge haben und dann hab ich mich auf die Suche gemacht und eine Seite gefunden auf der Stand maximal 255 Zeichen. Das klang weil 2^8 sehr logisch … wenn auch sehr „kurz“.

Darauf hin war ich dann allerdings sehr über SUN empört, dass die keine weiteren kapzitativeren (Zeichen)Datentypen bereitstellen, wenn ein String nur so kurz sein kann…und hab mir ewig den Kopf zerbrochen wie ich nun einen eigenen längeren Datentyp „basteln“ kann.

Viele Grüße
Julian

Hallo Julian,

Strings sind nur durch den Speicher begrenzt

public class StringStress
{
 public static void main(String args[])
 {
 StringBuffer buffer = new StringBuffer("x");

 while(true)
 {
 buffer.append(buffer.toString());
 System.out.print("\rLength: "+buffer.length());
 }
 }
}

kannst du laufen lassen bis es eine OutOfMemoryException gibt.

gruß
Heavy

Hallo Heavy,

auch dir vielen Dank für die Antwort!
Wie schon in der anderen Antwort geschrieben, dachte ich eben, dass Strings doch nicht unendlich groß sein können und hab prompt eine Seite im WWW gefunden die das auch schreibt und 255 Zeichen als Maximalgrößer angibt:wink: Und als Laie glaubt man sowas auch noch:wink:

Viele Grüße
Julian