Java流对象:InputStream、OutputStream、Reader、Writer
流对象使用完一般要用close方法关闭。释放资源。
InputStream 和OutPutStream
二者都是字节输入和输出的抽象父类,子字节为单位处理数据,每次读取、写入一个字节,适合处理二进制文件,如:音频、视频、图片等。
Redaer和writer是字符输入输出的抽象父类,以字符为单位处理数据,每次读取或写入一个字符,适合处理文本文件,实现类有FileReader和FileWriter.
附:Java代码实现图片文件的拷贝:
package com.buaa.comparable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class testCopy {
	public static void main(String[] args) {
		copy();
	}
	
	static void copy(){
		//1.创建数据源文件
		File file = new File("e:\\picture1.jpg");
		InputStream is = null;
		File file1 = null;
		
		OutputStream os = null;
		
		try {
			//搭建输入流管道
			is = new FileInputStream(file);
			//3.创建目的文件;
			file1 = new File("e:\\picture2.jpg");
			//4.搭建输出流管道
			os = new FileOutputStream(file1);
			int b = 0;
			
			//每次从源文件读出一个字节,就像目标文件写入一个字节
			while((b=is.read())!=-1){
				os.write(b);
			}
			
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
				try {
					if(os!=null){
					os.close();
					}else if (is!=null) {
						is.close();
					}
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号