字节输入输出流,字符输入输出流

IO流按功能分为节点流 处理流

 节点流:可以从或向一个特定的地方读写字节数据;

处理流:对一个已经存在的流的连接和封装,通过所封装的流的功能调用实现数据重写。

 

1.字节输入流InputStream,   void close; int read() ; 

2.文件输入流FileInputStream

3.字节输出流 OutputStream,抽象类不能实例化对象。void close();void flush()刷新此输出流并强制写出所有缓冲的输出字节。

4.文件输出流 FileOutputStream 

5.字符输入流 Reader 所有输入流的父类,是抽象类不能实例化对象。使用他的子类FileReader;

6.字符输出流 writer 所有字符输出流的父类,是一个抽象类不能实例化对象 同样是使用子类FildWriter

1.使用字节流复制文件

public static void copy1() throws Exception{
		//1创建字节文件输入输出流
		InputStream is=new FileInputStream("d:\\003.jpg");
		OutputStream os=new FileOutputStream("d:\\004.jpg");
		//2读、写
		byte[] buf=new byte[1024*4];
		int len=0;
		while((len=is.read(buf))!=-1){
			//buf缓冲区,0从第一个位置写,len写的长度
			os.write(buf,0,len);
		}
		//3关闭
		is.close();
		os.close();
		System.out.println("复制完成");
	}

 2.使用字符流复制文件

 

	public static void copy2() throws Exception{
		//1创建字符输入输出流
		Reader reader=new FileReader("d:\\003.jpg");
		Writer writer=new FileWriter("d:\\005.jpg");
		//2读写
   	        char[] buf=new char[1024*4];
		int len=0;
		while((len=reader.read(buf))!=-1){
			writer.write(buf, 0, len);
		}
		//3关闭
		reader.close();
		writer.close();
		System.out.println("复制完成");
		
	}

 如果复制的文件是文本文件,用字节流和字符流都可以

如果复制的是图片,音乐视频 使用字节流复制

 

 

你可能感兴趣的:(字节输入输出流,字符输入输出流)