Well your code looks fine I've tested it and it doesn't come out in capital letters, after comparing your code against mine I noticed that I've used a Checksum instead of using a for loop and that worked for me.
Here are some snippets of my Code public ChangeToUpperCaseInputStream(InputStream in, Checksum cksum) { super(in); this.cksum = cksum; } And this: public int read(byte[] b) throws IOException { int len; len = in.read(b, 0, b.length); if (len != -1) { cksum.update(b, 0, len); } return len; } I've also used Checksum in the CheckedOutputStream and the CheckedInputStream And I've also created a Checksum class. I think that might be the solution to your problem, I've got almost everything the same as you only the Checksum is different. Goodluck! -- To post to this group, send email to javaprogrammingwithpassion@googlegroups.com To unsubscribe from this group, send email to javaprogrammingwithpassion+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/javaprogrammingwithpassion?hl=en