第一段代码其实有一个read方法和write方法比这个效率高的:
byte[] buf = new byte[1024];
while((int len = bufis.read(buf)) != -1)
{
bufos.write(buf, 0, len);
}
第二段代码里BufferedReader和BufferedWriter读取的时候是按字符编码的,是用来操作文本文件的,
readLine方法遇到换行符才返回读取的数据,否则一直阻塞,图片文件里怎么会有换行符,可能有两个字节数据编码后刚好是换行符,该方法就返回了数据,
然后你用write方法将其写出,然后又用newLine方法加了一个换行符,哥们儿,你操作的可是图片啊,怎么能加上换行符呢?
总之,BufferedReader和BufferedWriter是用来操作文本文件的,操作图片文件肯定出错! |