while ((read = bufferedReader.read(buffer)) > 0) {
writer.write(buffer, 0, buffer.length);
}
Usual mistake. You're assuming that read() fills the buffer. Se the Javadoc. You need to use the read count in the write method:
while ((read = bufferedReader.read(buffer)) > 0) {
writer.write(buffer, 0, read);
}
But unless you know for sure that the file is text you should be using streams, not readers and writers.