FileInputStream bzw. BufferedInput Stream Puffern

Status
Nicht offen für weitere Antworten.

Deficiency

Mitglied
'Hallo!


Ich hab eine Große Datei auf Platte und muss diese kopieren, auf ein Netzlaufwerk. Ich würde die Datei nun gerne einlesen (mit FileInputStream, oder BufferInputStrem) und dann nicht Byteweise schreiben, sondern auf ein Mal. Gibt es da eine Möglichkeit, bzw, Kann man einen FileInputStream Puffern bis jetzt habe ich es so:

Code:
InputStream src = null;
src = new BufferedInputStream( new FileInputStream("C:\\Programme\\Scan\\" + name+ i + ".tif") );
int d;
// Copy the files a byte at a time
d = src.read();
while ( d != -1 ) {
       IFSfos.write( d );
       d = src.read();
}

Danke
 
ja schau dir doch erstmal die Datei-Kapitel in Lehrbüchern (Grundlage!)
oder wenigstens die API solcher Lese-/ Schreib-Klassen an?

du kannst ein byte[1000] definierten und das in einem Schlag lesen/ schreiben
 
Die Lösung klappt net
Die Datei ist größer als eine Byte[] das ich definieren kann.

Sie hat im Schnitt 500 kb -->512000 Bytes!
 
dennoch gilt:
wenn du Daten in 1000er Schritten statt einzeln überträgst,
bist du vielleicht nicht genau 1000x aber doch extrem schneller,

oder was willst du genau?

die ganze Datei in den Speicher einlesen?
wenn du kein einzelnes großes Array anlegen kannst, dann mehrere kleinere,
sollte die Datei größer als dein Arbeitsspeicher sein, wirds schwierig,
das stimmt 😉
 
Auf die Idee bin ich noch gar net gekommen!

Danke!

Aber ne möglichkeit den Stream komplett zu puffern und zu schreiben Gibt es net, oder

Danke
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben