Copies input to output. Returns nil or throws IOException. Input may be an InputStream, Reader, File, byte, or String. Output may be an OutputStream, Writer, or File. Options are key/value pairs and may be one of :buffer-size buffer size to use, default is 1024. :encoding encoding to use if converting between byte and char streams. Does not close any streams except those it opens itself (on a File).