# Variable Anzahl von Bytes aus einer Datei lesen



## Sedalz (7. Jan 2007)

Guten Tag zusammen!
Ich habe folgendes Problem:

Ich möchte aus einer Datei 2 Strings lesen und daraus ein Objekt erstellen, wobei die Strings aber unterschiedlich und variabel lang sein können und das beliebig oft.

Also die Datei sieht z.B so aus:


```
<String1>#<String2>
<String1>#<String2>
<String1>#<String2>
```

also erst ein String, dann ein Trennzeichen (in diesem Fall '#') und dann ein weiterer String.
Es soll jetzt für jede Zeile ein Objekt erstellt werden, dass jeweils 2 Strings enthält, und das möglichst performant.
(Ist ja fürs Handy) (MIDP 1.0, CLDC 1.0)
Meine bisherige Lösung war es, immer byte für byte zu lesen und immer zu überprüfen, ob das byte = 35 ('#') ist und dann abzubrechen. Die Bytes habe ich in einem Array zusammengefasst, welches immer um 1 vergrößert wird und nachher in einen String verwandelt wird, was ja nicht gerade schnell ist...
Meine Frage ist jetzt also, ob das irgendwie performanter zu realisieren ist.
Danke Im Voraus


----------



## SlaterB (7. Jan 2007)

vorher die Länge der Datei bestimmen und alle Bytes in einem Rutsch in ein entsprechend langes Array einlesen,

oder zumindest 100er Array verwenden, wozu diese ständig neu erzeugen?

----------

es gibt auch sowas nettes wie


```
String

public String(byte[] bytes,
              int off,
              int len)

    Construct a new String by converting the specified subarray of bytes 
using the platform's default character encoding. The length of the new 
String is a function of the encoding, and hence may not be equal to the length of the subarray.

Parameters:
    bytes - The bytes to be converted into characters
    off - Index of the first byte to convert
    len - Number of bytes to convert
Since:
    JDK1.1
```


----------



## Sedalz (7. Jan 2007)

Vielen Dank!
Funktioniert wunderbar.


----------

