Well, java.nio can help you copy things very efficiently. However if you want to interpretimage data, that's something else altogether, and you probably can't (yet) benefit from the new java.nio classes for this. You should probably check out the new Java Image I/O package. What exactly do you want to do? When you say "changing its size", do you mean the file size, or the display size? Either way, this will have little to do with java.nio - editing image data to derive a new image representation is much more complex than simply reading and writing data. Similarly, what do you mean about changing jpg to gif? Do you really want to transform a gif file into a jpg, or vice versa? Why? What benefit do you hope to get from this?