# String - Länge begrenzt?



## Edelfried (7. Jul 2006)

hallo, ich habe ein problem beim einlesen einer datei in einen string.
lese ich mit einem filereader die datei ein und hänge jedeszeichen an einen
string an, so wird meine datei unvollständig. gibt es eine art begrenzung der länge
eines string?

im vorraus vielen dank
edelfried

ps: hier mien quellcode

```
private void wandleQuellcode(){
//		Einlesen der Quelldatei		
		FileReader f;
		FileWriter fw;
		String text = new String();
		int c;
		
	     try {
	       f = new FileReader(datei);
	       while ((c = f.read()) != -1) {

	    	  text=text+(char)c;
	       }
	       f.close();
	     } 
	     catch (IOException exc) {
	    	 System.out.println("Fehler beim Lesen der Datei: " + exc );
	     }
	     System.out.println(text);
	     System.out.println("----------------------------------------------");
	     try{
	     text = text.replace("NUMBER","NUMERIC");
	     }catch(Exception exc){
	    	 System.err.println("Es ist kein Datentyp NUMBER vorhanden" + exc);
	     }
	     try{
	     text = text.replace("VARCHAR2","VARCHAR");
		 }catch(Exception exc){
			 System.err.println("Es ist kein Datentyp VARCHAR2 vorhanden" + exc);
		 }
		 try{
	     text = text.replace('/',' ');
         }catch(Exception exc){
        	 System.err.println("Es ist kein >> / << vorhanden" + exc);
         }
	     System.out.println(text);
	     
	     try{
	    	 fw = new FileWriter(datei);
		     for (int i = 0; i < text.length(); i++){
		    	 fw.write(text.charAt(i));
		     }
	     
	     }catch(Exception exc){
	    	 
	     } 
	     JOptionPane.showMessageDialog(this,"Die Datei wurde erfolgreich geändert! \n" 
	    		 + datei.getAbsoluteFile().toString());
	     
	     
	}
```


----------



## The_S (7. Jul 2006)

Deinen Arbeitsspeicher. Aber was du da machst ist der Performancekiller schlechthin. Wenn du schon Zeichenweise liest und alles an einen String hängst, dann mit StringBuffer/StringBuilder und append.


----------



## foobar (7. Jul 2006)

Also das Einlesen einer Datei kannst du auch einfacher haben:

```
BufferedReader br = new BufferedReader(new FileReader("myFile.txt"));
StringBuffer out = new StringBuffer();
String line = null;
while ((line = br.readLine())!= null)
{
  out.append(line);
}


.... mach nirgendwas mit dem StringBuffer
```


----------



## Edelfried (7. Jul 2006)

gut das hab ich geändert. worin liegt eigentlich der unterschied zwischen StringBuffer und StringBuilder? worin unterschieden sich diese beiden klassen?


----------



## The_S (7. Jul 2006)

Steht alles genauestens in der API ...


----------

