1.针对的异常不同,catch不同的Exception,可以做详细的异常处理,当然也可以一起逮,但是针对性不强,要看具体的需求,这个的作用你在每个异常里print一下然后专门触发那个异常就知道了
2.当然要触发那个异常,得先了解那个异常,我们做异常处理往往都是先有异常或能想到的异常再处理,你这里就有点逆向了,遇到这样的问题最好是查API或者相关文档,或者直接网上找一下
public class UnsupportedEncodingException extends IOException
不支持字符编码异常,也就是字符转码的问题,可能是因为缺失包,也可能是文件编码的设置问题不兼容导致,看String str=new String(buffer,0,b,"Default");
查String 的构造方法
String(byte[] bytes, int offset, int length, Charset charset)
通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String
所以你指定的charset ("Default")有可能不存在而引发的异常
3.这个区别是有的,具体我没有运行你的文件,按我的理解b这个数应该指向文件的字符个数,也就是说文件有100个字符,b就等于100了,如果写2500的话后面2400个空间就多余了
说什么好勒