String Array

Hallo!

Mal ne Frage. Und zwar möchte ich ein StringArray mit z.B. 100 vordefinierten „String[] array = new String[100]“ Elementen in eine Datei schreiben.

Dann sollte dieses Array z.B. mit 50 Elementen gefüllt werden, aber in die Datei sollen immer die 100 Elemente oder auch Byte zum Schluss geschrieben werden. Wie könnte man das machen? Das ganze soll ohne Objekte wie ArrayList funzen, da diese zuviel Overhead erzeugen.

ByteArrayOutputStream ba = new ByteArrayOutputStream(); 
 RandomAccessFile file = new RandomAccessFile("file.txt", "rw");

 String[] array = new String[100];

 for (int n=0; n

Das war mein Ansatz, aber hier wird die Datei eben nur 10 Byte anstatt den 100Byte groß. Bei einer ArrayList kann ich ja die Pos angeben, in der ich wieder was in Array schreiben möchte.

Danke

moien

Mal ne Frage. Und zwar möchte ich ein StringArray mit z.B. 100
vordefinierten „String[] array = new String[100]“ Elementen in
eine Datei schreiben.

wobei jeder einzelne String variabel lang sein kann ?

Dann sollte dieses Array z.B. mit 50 Elementen gefüllt werden,
aber in die Datei sollen immer die 100 Elemente oder auch Byte
zum Schluss geschrieben werden. Wie könnte man das machen?

Mit Trennzeichen (hinter jedem String ein newline) oder Dummies (" ") oder an Anfang der Datei die Anzahl der enthaltenen Strings vermerken.

cu

Der String besteht quasi aus einem Zeichen.

z.B. soll das Array meintwegen mit „0“ am Anfang füllt sein. Dann z.B. das Füllzeichen „x“ rein auf 10 Byte angenommen.

in etwa so -> [xxxxxxxxxx0000000000] StringArray[20] mit 10 Füllzeichen.

Moien

z.B. soll das Array meintwegen mit „0“ am Anfang füllt sein.
Dann z.B. das Füllzeichen „x“ rein auf 10 Byte angenommen.

in etwa so -> [xxxxxxxxxx0000000000] StringArray[20] mit
10 Füllzeichen.

(Du solltest ganz ersthaft über char[] nachdenken. Sind deutlich schneller)

OK, und wo ist das Problem ?

String[] array = new String[100];

for (int i =0;i

cu

Oki…danke.

Ein Frage habe ich noch. Gibt es jetzt eine Möglichkeit das gefüllte Array in einem Stück in den ByteArrayOutputStream zu schreiben?

Jetzt muss ich quasi noch eine dritte Schleife durchlaufen, indem jetzt das geänderte Array Stück für Stück wieder reinschreibe.

Code

 for (int i =0;i



> OK, und wo ist das Problem ?  
> 
>     
> String[] array = new String[100];
>     
> for (int i =0;i
>     
> cu

Moien

Ein Frage habe ich noch. Gibt es jetzt eine Möglichkeit das
gefüllte Array in einem Stück in den ByteArrayOutputStream zu
schreiben?

Wenn du ein char[] anstelle des String[] verwendest ja, wenn nicht dann nicht. char[] kann aber halt nur ein Zeichen speichern.

Jetzt muss ich quasi noch eine dritte Schleife durchlaufen,
indem jetzt das geänderte Array Stück für Stück wieder
reinschreibe.

An dem Code sind nur 2 Stellen wirklich langsam:

  • getBytes. An dem kommt man aber nicht vorbei.
  • das eigentliche Schreiben. Das begrenzt die Festplatte.

cu