黑马程序员技术交流社区
标题:
缓存区的异常处理
[打印本页]
作者:
薛鹏鹏
时间:
2013-8-7 20:20
标题:
缓存区的异常处理
如图,不抛的话,怎么try
public static void copy_1()throws IOException //这里不想抛异常的话,怎么处理
{
BufferedInputStream bufis = new BufferedInputStream(
new FileInputStream("Date01.java"));
BufferedOutputStream bufos = new BufferedOutputStream(
new FileOutputStream("Date00.java"));
int by = 0;
while((by=bufis.read())!=-1)
{
bufos.write(by);
}
bufos.close();
bufis.close();
}
复制代码
作者:
李政
时间:
2013-8-7 21:30
public static void copy_1()
{
BufferedInputStream bufis = null;
BufferedOutputStream bufos = null;
try
{
bufis = new BufferedInputStream(new FileInputStream("Demo.java"));
bufos = new BufferedOutputStream(new FileOutputStream("Demo11.java"));
int by = 0;
while((by=bufis.read())!=-1)
{
bufos.write(by);
}
}
catch (IOException e)
{
throw new RuntimeException("读取异常");
}
finally{
if(bufis!=null)
try
{
bufis.close();
}
catch (IOException e)
{
System.out.println("关闭资源异常");
}
if(bufos!=null)
try
{
bufos.close();
}
catch (IOException e)
{
System.out.println("关闭资源异常");
}
}
}
复制代码
作者:
肥猫
时间:
2013-8-7 21:42
public static void copy_1() { // 这里不想抛异常的话,怎么处理
try (BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("Date01.java"));
BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("Date00.java"));) {
int by = 0;
while ((by = bufis.read()) != -1) {
bufos.write(by);
}
} catch (IOException e) {
e.printStackTrace();
}
}
复制代码
作者:
黑马龙子
时间:
2013-8-8 08:48
如果不进行总体抛出异常的话,那就要一步步的分别出现异常的流进行try{}catch{}和finally{}操作,先进行初始化,在进行初始化时一抛出异常,对象初始化就失败,对象就不存在。所以对之进行try{}catch{}异常处理,记住在进行finally操作的时候一定要对关闭的流进行不为空的判断。以下是我的编写:
public class Copy {
public static void copy_1() {
// 初始化一抛出异常,对象初始化就失败,对象就不存在。
BufferedInputStream bufis = null;
BufferedOutputStream bufos = null;
try {
bufis = new BufferedInputStream(new FileInputStream("Demo.java"));
bufos = new BufferedOutputStream(new FileOutputStream("Demo11.java"));
int by = 0;
while ((by = bufis.read()) != -1) {
bufos.write(by);//调用write方法,将字符串写入到流中()。
}
}
catch (IOException e) {
throw new RuntimeException("读取文件失败");
}
finally {
try {
//finally中一定要对关闭的流进行不为空的判断
if (bufis != null)
bufis.close();
} catch (IOException e) {
System.out.println("读取关闭失败");
}
try {
if (bufos != null)
bufos.close();
} catch (IOException e) {
System.out.println("写入关闭失败");
}
}
}
public static void main(String[] args) {
copy_1();
}
}
复制代码
希望互助学习!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2