You need to read all bytes from source stream to the destination. The read() method will return -1 when eof is reached, otherwise it returns the number of bytes read.
public static void copy(InputStream in, OutputStream out
int bufferSize)
throws IOException
{
// Read bytes and write to destination until eof
byte[] buf = new byte[bufferSize];
int len = 0;
while ((len = in.read(buf)) >= 0)
{
out.write(buf, 0, len);
}
}
written by objects
\\ tags: copy, InputStream, OutputStream, stream
Java does not provide a standard method to copy a file. To implement copying you need to read all bytes from source file and write to destination. The read() method will retuirn -1 when eof is reached, otherwise it returns the number of bytes read.
public static void copy(File source, File destination)
throws IOException
{
// Open file to be copied
InputStream in = new FileInputStream(source);
// And where to copy it to
OutputStream out = new FileOutputStream(destination);
// Read bytes and write to destination until eof
byte[] buf = new byte[1024];
int len = 0;
while ((len = in.read(buf)) >= 0)
{
out.write(buf, 0, len);
}
// close both streams
in.close();
out.close();
}
written by objects
\\ tags: copy, file