public class SaveFile
extends Thread
{
private String dateiName;
private static int BUFFERSIZE = 100000;
private long dateigröße;
private InputStream in;
public SaveFile(String dateiName, long dateigröße, InputStream in)
{
this.dateigröße = dateigröße;
this.dateiName = dateiName;
this.in = in;
}
public void run()
{
if (dateiName.equals("no Datei"))
{
System.out.println("keine gültige Datei");
}
else
{
try
{
FileOutputStream f = new FileOutputStream(new File(dateiName));
try
{
byte[] buffer;
if (dateigröße >= BUFFERSIZE)
{
buffer = new byte[BUFFERSIZE];
}
else
{
buffer = new byte[(int)dateigröße];
}
System.out.println("dateigröße: " + dateigröße + ", " + buffer.length);
int größe = 0;
System.out.println("");
int read;
while ((größe < dateigröße) && ((read = in.read(buffer)) != -1))
{
f.write(buffer, 0, read);
größe += read;
System.out.println("read : " + read);
if (dateigröße < größe + BUFFERSIZE)
{
if (dateigröße != größe)
{
buffer = new byte[(int)dateigröße - größe];
if ((read = in.read(buffer)) != -1)
{
System.out.println("read2: " + read);
f.write(buffer, 0, read);
größe += read;
größe += BUFFERSIZE;
}
}
}
System.out.println("größe: " + größe);
}
f.flush();
System.out.println("Dateiübertragung erfolgreich");
System.out.println("___________________________");
System.out.println("");
f.close();
}
catch (FileNotFoundException e)
{
System.out.println(e);
}
}
catch (IOException e)
{
System.out.println(e);
}
}
}
public static void main(String[] args)
throws Exception
{
File f = new File("test.txt");
InputStream in = new FileInputStream(f);
new SaveFile("save.txt", f.length(), in).start();
}
}