Javaのサーブレットから画像ファイルを取得したく以下の
ようにソースを書いたのですが
出力されたファイルはバイト数は正しいのですが
画像が変になってしまいます。
どこか間違いがありますでしょうか?

URL url = new URL(urlString);

//受信
InputStream is = url.openStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));

//ファイルに出力
FileOutputStream fos = new FileOutputStream(fileName);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
int c;
while ((c = reader.read()) != -1) {
bw.write(c);
}
bw.flush();
reader.close();
bw.close();