JPG uses lossy compression, and thus pixels are never exact with this type of file format. If you look at JPG files that have been copied several times, you'll start seeing an accumulation of errors, often at the borders and edges within the image. If you want perfect storage of pixels, use a different image file format type that uses either no compression or lossless compression such as PNG.
As an aside, code like this:
catch(IOException i){};
Should never be present, even in "just a sample code to illustrate ...".
Edit
You state:
No I am not doing any compression to the pixels at all. For testing purposes I am just reading the pixels in, and writing them back out against using BufferedImage. As in, the pixel values itself are being altered slightly by 1 or 2 values. I don't know wyhy. From testing and testing, it now seems to do with writing the values back to file ?
You're using JPG -- and so again, you are compressing whether you know it or not.
Again, have you tried your experiment with PNG formatted images?
Edit 2
You state:
But that doesn't explain why only some pixels are unchanged, but there odd ones, are being altered.
The amount of altering and the number of pixels potentially altered will depend on the compression level (inverse of the quality level) used by the ImageWriter. This can be set if you extract out the actual ImageWriter used for jpg images. Check out this question for instance.