zoukankan      html  css  js  c++  java
  • Java IO输入输出流 FileWriter 字符流

     字节缓冲流

    //为什么要使用包装流,使用包装流是为了提高读写操作的性能。
    public class Packing_flowDemo {
    	public static void main(String[] args) throws Exception {
    		File file = new File("file/packing_flow.txt");
    		//包装流的写法,缓冲区内存大小。1024*8=8192  (byte)
    //		BufferedOutputStream packing = new BufferedOutputStream(new FileOutputStream(file, true));
    //		packing.write("大家好!你好吗?how are your !".getBytes());
    //		packing.close();
         //包装流的读写操作。
    		BufferedInputStream outPacking = new BufferedInputStream(new FileInputStream(file));
    		byte[] buffer = new byte[1024];
    		int len = -1;
    		while ((len = outPacking.read(buffer)) != -1) {
    			System.out.println(new String(buffer, 0, len));
    		}
    	}
    }
    
    public static void main(String[] args) throws IOException {//为了代码看起来美观一些,直接抛出去
    		File file=new File("moves/许嵩 - 素颜 - 现场版.mp3");
    		File file1=new File("moves/许嵩 - 素颜.mp3");
    		//text(file, file1);
    		//text2(file, file1);
    		//text3(file, file1);
    		text4(file, file1);
    	}
    	private static void text(File file,File file1) throws IOException {
    		//节点流的方法,一个一个字节的读和写
    		long begin=System.currentTimeMillis();
    		FileInputStream in=new FileInputStream(file);
    		FileOutputStream out =new FileOutputStream(file1);
    		int len=-1;
    		while((len=in.read())!=-1){
    			out.write(len);
    		}
    		in.close();
    		out.close();
    		System.out.println(System.currentTimeMillis()-begin);//5547毫秒
    	}
    	
    	private static void text2(File file,File file1) throws IOException {
    		//缓冲流的写法,一个一个字节的读和写
    		long begin=System.currentTimeMillis();
    		BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
    		BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(file1));
    		int len=-1;
    		while(in.read()!=-1){
    			out.write(len);
    		}
    		in.close();
    		out.close();
    		System.out.println(System.currentTimeMillis()-begin);//63毫秒
    	}
    	
    	private static void text3(File file,File file1) throws IOException {
    		//节点流的写法,一次性读取1024个字节
    		long begin=System.currentTimeMillis();
    		FileInputStream in=new FileInputStream(file);
    		FileOutputStream out =new FileOutputStream(file1);
    		int len=-1;
    		byte[] buffer=new byte[1024];
    		while((len=in.read(buffer))!=-1){
    			out.write(buffer,0,len);
    		}
    		in.close();
    		out.close();
    		System.out.println(System.currentTimeMillis()-begin);//38毫秒
    	}
    	
    	private static void text4(File file,File file1) throws IOException {
    		//缓冲流的写法,一次性读取1024个字节
    		long begin=System.currentTimeMillis();
    		BufferedInputStream in=new BufferedInputStream(new FileInputStream(file));
    		BufferedOutputStream out =new BufferedOutputStream(new FileOutputStream(file1));
    		int len=-1;
    		byte[] buffer=new byte[1024];
    		while((len=in.read(buffer))!=-1){
    			out.write(buffer,0,len);
    		}
    		in.close();
    		out.close();
    		System.out.println(System.currentTimeMillis()-begin);//4毫秒
    	}
    
  • 相关阅读:
    Shell工具——cut、sed、awk、sort
    基于RocketMQ分布式事务实现
    Alpine Linux 包管理工具
    分布式事务之可靠消息最终一致性
    消息系统本质思考
    深入剖析Redis数据结构
    Feign原理深入剖析
    Shell中 /dev/null用法解析
    Lua 数据类型与变量
    分布式事务之Seata开源方案
  • 原文地址:https://www.cnblogs.com/jiangxifanzhouyudu/p/6721140.html
Copyright © 2011-2022 走看看