zoukankan      html  css  js  c++  java
  • 缓冲输入流

    解决问题

    大文件下载问题

    知识点

    缓存输入流

    使用方法

      BufferedInputStream继承于FilterInputStream,提供缓冲输入流功能。缓冲输入流相对于普通输入流的优势是,它提供了一个缓冲数组,每次调用read方法的时候,它首先尝试从缓冲区里读取数据,若读取失败(缓冲区无可读数据),则选择从物理数据源(譬如文件)读取新数据(这里会尝试尽可能读取多的字节)放入到缓冲区中,最后再将缓冲区中的内容部分或全部返回给用户.由于从缓冲区里读取数据远比直接从物理数据源(譬如文件)读取速度快。

    // 首先需要声明一个byte数组作为buffer,然后循环将文本内容循环读入到buffer中,并将buffer转换为字符串,打印到控制台。
    public class Main {
         /* 从文件中读取文本*/
         public void readFromFile(String filename) {  
         	BufferedInputStream bufferedInput = null;
          	byte[] buffer = new byte[1024];
               try {
               //创建BufferedInputStream 对象
               bufferedInput = new BufferedInputStream(new FileInputStream(filename));
               int bytesRead = 0;
               //从文件中按字节读取内容,到文件尾部时read方法将返回-1
               while ((bytesRead = bufferedInput.read(buffer)) != -1) {
                    //将读取的字节转为字符串对象
                    String chunk = new String(buffer, 0, bytesRead);    
                    System.out.print(chunk); 
                    }       
               } catch (FileNotFoundException ex) {
                    ex.printStackTrace();            	   
        	} catch (IOException ex) {            
         	     ex.printStackTrace();
               } finally {
                    //关闭 BufferedInputStream
                    try {
                        if (bufferedInput != null) {
                            bufferedInput.close();                 
                        } catch (IOException ex)
                            ex.printStackTrace(); 
                        }    			       		 
               }
         
         }
    }
    
  • 相关阅读:
    jQuery 基本选择器
    JavaScriptif while for switch流程控制 JS函数 内置对象
    JavaScrip基本语法
    数据库 存储引擎 表的操作 数值类型 时间类型 字符串类型 枚举集合 约束
    数据库基础知识 管理员 用户登录授权的操作
    粘包的产生原理 以及如何解决粘包问题
    socket TCP DPT 网络编程
    2018年年终总结
    Android技术分享
    No accelerator found
  • 原文地址:https://www.cnblogs.com/liuyupen/p/13914190.html
Copyright © 2011-2022 走看看