JAVA小练习141——IOException的处理方式(以拷贝图片为例)

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.management.RuntimeErrorException;


public class Demo141 {

	public static void main(String[] args) {
		readTest();
	}
	
	
	//拷贝图片
	public static void copyImage(){
		FileInputStream fileInputStream = null;
		FileOutputStream fileOutputStream = null;
		try{
			//找到目标文件
			File inFile = new File("F:\\美女\\1.jpg");
			File outFile = new File("F:\\拷贝.jpg");
			//建立数据的输入输出通道
			fileInputStream = new FileInputStream(inFile);
			fileOutputStream = new FileOutputStream(outFile);
			//建立缓冲字节数组,边读边写
			byte[] buf = new byte[1024];
			int length = 0 ; 
			while((length = fileInputStream.read(buf))!=-1){
				fileOutputStream.write(buf,0,length);
			}
		}catch(IOException e){
			System.out.println("拷贝出错了...");
			throw new RuntimeException(e);
		//关闭资源的原则: 先开后关, 后开先关。
		}finally{
			try{
				if(fileOutputStream!=null){
					//关闭资源
					fileOutputStream.close();
				}
			}catch(IOException e){
				throw new RuntimeException(e);
			}finally{
				try{
					if(fileInputStream!=null){
						fileInputStream.close();
					}
				}catch(IOException e){
					throw new RuntimeException(e);
				}
			}
		}
		
		
	}
	
	
	public static void readTest() {
		FileInputStream fileInputStream = null;
		try{
			File file = new File("F:\\a.txt");
			//建立文件的输入流通道
			fileInputStream	= new FileInputStream(file);
			//建立缓冲字节数组读取文件数据
			byte[] buf = new byte[1024];
			int length = 0 ; //记录本次读取的字节个数
			//读取文件的数据
			while((length = fileInputStream.read(buf))!=-1){
				System.out.println(new String(buf,0,length));
			}
		}catch(IOException e){
			//如何处理???
			System.out.println("读取文件出错...");
			throw  new RuntimeException(e);  // 把真正的异常原因包装到RuntimeException中然后再抛出。 (糖衣炮弹)
			
		}finally{
			try{
				//关闭资源()
				if(fileInputStream!=null){
					fileInputStream.close();		
					System.out.println("关闭资源成功...");
				}
			}catch(IOException e){
				System.out.println("关闭资源失败...");
				throw  new RuntimeException(e);
			}
		}
	}
	
}


猜你喜欢

转载自blog.csdn.net/Eric_The_Red/article/details/92407511