Probleme mit skip() bei DataOutputStream

mrno

Erfahrenes Mitglied
Hi,
bin gerade dabei so eine art resume funktion zum downloaden von dateien zu programmieren. Leider habe ich ein problem wenn ich bytes mit skip überspringen möchte. Wird die datei am schluss um 200bytes größer.
Habe folgenden code:
Code:
package FileTest;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;


public class FileTest {
 public FileTest(){
	 try {
		 URL url = new URL("http://myjavaserver.com/~mrno/cd.rar");
		 URLConnection con =url.openConnection();
		 DataInputStream is=new DataInputStream(con.getInputStream());
		 File fout=new File("cdnew.rar");
		 boolean b=fout.createNewFile();
			DataOutputStream out = new DataOutputStream(new FileOutputStream(fout));
			byte []buffer=new byte[4168];
			int aktuell=0;
			int position;
			while(aktuell<con.getContentLength()/2){
				position=is.read(buffer);
				aktuell+=position;
				out.write(buffer, 0, position);
			}
			is.read(buffer);
			is.close();
			out.close();
			url=new URL("http://myjavaserver.com/~mrno/cd.rar");
			con =url.openConnection();
			is=new DataInputStream(con.getInputStream());
			con.getInputStream().skip(aktuell+200);
			out=new DataOutputStream(new FileOutputStream(fout,true));
			is.read(buffer);
			while(aktuell<con.getContentLength()){
				position=is.read(buffer);
				System.out.println(position);
				aktuell+=position;
				out.write(buffer, 0, position);
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 }
 public static void main(String []args){
	 new FileTest();
 }
}
Die datei cd.rar ist 180.0kb groß wenn ich Sie mit dem Programm von oben runterlade ist Sie 180.2kb groß. Was muss ich am code ändern das es funktioniert?
 
Zurück