字节缓冲流& 字符流

1. 字节缓冲流

1.1 字节缓冲流构造方法【应用】

  • 字节缓冲流介绍
    • IBufferOutputStream:该类实现缓冲 输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用。
    • IBufferedlnputStream:创建BufferedInputStream将创建一个内部缓冲区数组。当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节
    • 构造方法
方法名说明
BufferOutputStream(OutputStream out)创建字节缓冲输出流对象
BufferedlnputStream(InputStream in)创建字节缓冲输入流对象
  • 示例代码
public class BufferStreamDemo{
	public sattic void main(String[] args) throws IOException {
	//字节缓冲输出流:BufferedOutputStream(OutputStream out) 
	BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("muByteStream\\bos.txt"));
	//写数据
	bos.write("hello\r\n".getBytes());
	bos.write("world\r\n".getBytes());
	//释放资源
	bos.close();



	//字节缓冲输入流:BufferedInputStream(InputStream in)
	BufferedInputStream bis = new BufferedInputStream(new FileInputStream("myByteStream\\bos.txt"));
	//一次读取一个字节数据
	int by;
	while((by =bis.rea())!=-1) {
		System.out.print((char)by);
	}
	
	//一次读取一个字节数组数据
	byte[] bys = new byte[1024];
	int len;
	while ((len = bis.read())!=-1) {
	System.out.print(new String(bys,o,len));
	}
	//释放资源
	bis.close();
  }
}

1.2 字节流复制视频【应用】

  • 案例需求
    把"E:\JAVASE\java.avi"复制到模块目录下的“java.avi”
  • 实现步骤
    • 根据数据源创建字节流输入流对象
    • 根据目的地址创建字节输出流对象
    • 读写数据,复制视频
    • 释放资源
  • 代码实现
public class CopyAviDemo {
	public static void main(String[] args) throws IOException {
	//记录开始时间
	long startTime = System.currentTimeMillis();

   //复制视频
   method1();
   method2();
   method3();
   method4();
   
	
   //记录结束时间
   long endTime = System.currentTimeMillis();
   System.out.println("共耗时:"+(endTime-StartTime)+"毫秒");
   }

  //基本字节流一次读写一个字节
  public static void method1 throws IOException {
  	//"E:\JAVASE\java.avi
  	//模块目录下的 java.avi
  	FileInputStream fis = new FileInputStream("E:\JAVASE\java.avi");
  	FileOutputStream fos = new FileOutputStream("mySbyteStream\\java.avi");
  	int by;
  	while((by = fis.read())!=-1){
  		fos.write(by);
  	}
  	fos.close();
  	fis.close();
  }

 //基本字节流一次读写一个字节数组
  public static void method2 throws IOException {
  	//"E:\JAVASE\java.avi
  	//模块目录下的 java.avi
  	FileInputStream fis = new FileInputStream("E:\JAVASE\java.avi");
  	FileOutputStream fos = new FileOutputStream("mySbyteStream\\java.avi");
  	byte[] bys = new byte[1024];
  	int len;
  	while((len = fis.read(bys))!=-1){
  		fos.write(bys,0,len);
  	}
  	fos.close();
  	fis.close();
  }
  
  //字节缓冲流一次读写一个字节
  public static void method3 throws IOException {
  	BufferedInputStream bis = new BufferedInputStream("E:\JAVASE\java.avi");
  	BufferedOutputStream bos = new BufferedOutputStream("mySbyteStream\\java.avi");
  	int by;
  	while((by = bis.read())!=-1){
  		bos.write(by);
  	}
  	bos.close();
  	bis.close();
  }


  //字节缓冲流一次读写一个字节数组
  public static void method3 throws IOException {
  	BufferedInputStream bis = new BufferedInputStream("E:\JAVASE\java.avi");
  	BufferedOutputStream bos = new BufferedOutputStream("mySbyteStream\\java.avi");
  	byte[] bys = new byte[1024];
  	int len;
  	while((len = bis.read(bys))!=-1){
  		bos.write(bys,0,len);
  	}
  	bos.close();
  	bis.close();
  }
}

2. 字符流

2.1 为什么会出现字符流【理解】

2.2 编码表【理解】

2.3 字符串中的编码解码问题【应用】

2.4 字符流中的编码解码问题【应用】

2.5 字符流写数据的5种方式【应用】

2.6 字符流读数据的2中方式【应用】

2.7 字符流复制Java文件【应用】

2.8 字符流复制Java文件改进版【应用】

2.9 字符缓冲流【应用】

2.10 字符缓冲流复制Java文件【应用】

2.11 字符缓冲流特有功能【应用】

2.12 字符缓冲流特有功能呢复制Java文件【应用】

2.13 IO流小结【理解】

  • 字节流
  • 字符流

3.练习案例

3.1 集合到文件【应用】

3.2文件到集合【应用】

3.3 点名器【应用】

3.4 集合到文件改进版【应用】

3.5 文件到集合改进版【应用】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值