# Performance Problem beim File senden, empfangen



## duddel123 (7. Jul 2005)

Hallo zusammen mittels einfachen Buffered Reader und Writer sende, bzw. empfange ich ein großes Datenpaket!

Hiermit empfange ich...

```
long read = (long)incoming.read();
// Schreibe auf die Platte
while(read!=-1) {
	out.write((int) read);
	read = (long)incoming.read();
}//while
```

und die Gegenseite schreibt durch...



```
// Lese von Platte
long read = (long) fis.read();
// weg damit
while (read!=-1) {
	outgoing.write((int) read);
	read = (long) fis.read();
}//while
```

es funktioniert auch recht gut, allerdings hängt bei der Übertragung des Files die CPU an 100%, was könnte man daran verbessern um die CPU- Last herunter zu drücken?
Anderen Stream, den Buffer verkleinern, vergrößern??

Vielen dank im voraus

g duddel123


----------



## Bleiglanz (7. Jul 2005)

schau mal in die API

=> read liest nur ein dingends, kann aber auch arrays befüllen...


----------



## duddel123 (7. Jul 2005)

meinst du das man das entgegen nehmen und gleichzeitig weg schreiben auf die Platte beim Empfang entkoppeln sollte, per Array???

g duddel123


----------



## Bleiglanz (7. Jul 2005)

ja, lies halt immer gleich in 4kB array und schreib dieses sofort wieder weg


----------



## Stefan1200 (11. Jul 2005)

Du nutzt den BufferedReader / BufferedWriter doch hoffentlich nur für Text Dateien, oder? Wenn nicht, dann sind alle Dateien hinterher kaputt...

Falls es Binär Dateien sind (Zip, Exe, MP3, usw.) dann unbedingt BufferedOutputStream und BufferedInputStream verwenden.


----------

