BufferedInputStream类相比InputStream类,提高了输入效率,增加了输入缓冲区的功能 不带缓冲的操作,每读一个字节就要写入一个字节,由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低 带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里.等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多 InputStream流是指将字节序列从外设或外存传递到应用程序的流BufferedInputStream流是指读取…
从上篇文章中知道BufferedInputStream是自带缓冲区的输入流,可以大大减少IO次数,提供效率.下面的例子中实现了用BufferedInputStream与FileInputStream实现20M文件的差异 <pre name="code" class="java">public class BufferedOutputStreamDemo { /** * 用BufferedInputStream, BufferedOutputStream实…
FileInputStream inputStream = new FileInputStream("d://vv.mp4"); FileOutputStream outputStream = new FileOutputStream("v.mp4"); int len; // 一次读取一个字节,每读取一个字节都要实现一次与硬盘的交互操作 while ((len = inputStream.read()) != -1) { outputStream.write(le…
本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_12.html BufferedInputStream 介绍 BufferedInputStream 是缓冲输入流.它继承于FilterInputStream.BufferedInputStream 的作用是为另一个输入流添加一些功能,例…
package com.BufferedInputStreamUse; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; /* 我们清楚读取文件数据使用缓冲数组读取效率更高,sun也知道使用缓冲数组读取效率更高,那么 这时候sun给我们提供…
字节流 操作图片数据就要用到字节流. 字符流使用的是字符数组char[],字节流使用的是字节数组byte[]. 字节流读写文件 针对文件的读写,JDK专门提供了两个类,分别是FileInputStream和FileOutputStream. FileInputStream是InputStream的子类,它是操作文件的字节输入流,专门用于读取文件中的数据 FileOutputStream,它是OutputStream的子类,专门用于读取文件中的数据 如果是通过FileOutputStream向一个…
对于InputStream读取中文乱码,下面这段话给出了很好的解释,以及后续编码上的扩展. BufferedInputStream和BufferedOutputStream是过滤流,需要使用已存在的节点来构造. 即必须先有InputStream或OutputStream,相对直接读写,这两个流提供带缓存的读写,提高了系统读写效率性能. BufferedInputStream读取的是字节byte,因为一个汉字占两个字节,而当中英文混合的时候,有的字符占一个字节,有的字符占两个字节. 所以如果直接读…
BufferedInputStream 介绍 BufferedInputStream 是缓冲输入流.它继承于FilterInputStream.BufferedInputStream 的作用是为另一个输入流添加一些功能,例如,提供“缓冲功能”以及支持“mark()标记”和“reset()重置方法”.BufferedInputStream 本质上是通过一个内部缓冲区数组实现的.例如,在新建某输入流对应的BufferedInputStream后,当我们通过read()读取输入流的数据时,Buffer…
package com.itheima.demo01.BufferedStream; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; /* java.io.BufferedInputStream extends InputStream BufferedInputStream:字节缓冲输入流 继承自父类的成员方法: int read()从输入流中读取数据的…
BufferedInputStream.BufferedOutputStream的基本使用 BufferedInputStream是FilterInputStream流的子类,FilterInputStream又是InputStream流的子类.一个 BufferedInputStream为另一个输入流添加了功能,即缓冲输入和支持mark和reset方法的功能. 当BufferedInputStream创建时,就会创建一个内部缓冲区数组.当从流中读取或跳过字节时,内部缓冲 区将根据需要从所包含的…
package com.yang.Test.BufferedStudy; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; /** * java.io.BufferedInputStream extends InputStream * BufferedInputStream:字节缓冲输入流 * * 继承自父类的成员方法: * int read()从输入流中…
package file; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Demo3 { public static void main(String[] args) throws IOException { readTest(); } //BufferedInputStream维护的…
该类是所有二进制输入流的的抽象父类 类中主要方法解释说明如下 (1)public abstract int read() throws IOException; 该方法是从输入流中读取下一个字节,返回的值字节是一个范围从0到255之间的int数.如果读到输入流的未尾,则返回-1. 同时该方法会一直阻塞直到输入流中数据可用,或者流读完毕或者抛出异常. 下面以FileInputStream来举个示例. 读取一个文件test.txt. 该文件内容“abcdefghijklmn” @Test publi…
需要注意,由于是从文件读取,而WINDOWS自带的文本文档程序,亲测对于UTF-8文件会不可见地在文件头多出3个字节.另外回车换行也是不可见字节,需要考虑到. package com.test.common.socket; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.…
一.file类的常用操作 File file=new File("E:\\test\\javaIo"); System.out.println(file.isDirectory());//判断该文件是否是目录(如果该文件不存在也返回false) System.out.println(file.isFile());//判断文件是否是具体的文件 System.out.println(file.exists());//判断文件是否存在 System.out.println(file.mkdi…
1.读写的类型分为字节流和字符流,字节流一般是视频音频其他所有的类型都可以. (非文档文件使用字符流易造成未知编码(?)错误) InputStream OutputStream 抽象类 fileInputString FileOutputStream(file,true)//true追加还是覆盖 字符流一般读取文档文件因为有字符编码 Reader Writer 抽象类 fileReader fileWrite(字符流其实就是继承了转换流(即指定了编码)) 2.处理流,字节缓冲流和字符缓冲流:必须…
装饰器模式 装饰器模式又称为包装(Wrapper)模式.装饰器模式以多客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰器模式的结构 通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生子类来扩展,抑或是使用对象组合的方式.显然,直接修改对应的类的方式并不可取,在面向对象的设计中,我们应该尽量使用组合对象而不是继承对象来扩展和复用功能,装饰器模式就是基于对象组合的方式的. 装饰器模式以对客户端透明的方式动态地给一个对象附加上了更多的责任.换言之,客户端并不会角色对象在装饰前…
File类是文件的抽象表示,如果要对文件的内容进行读写就需要使用IO流技术. IO流简介:(Input/Output) I/O类库中使用"流"这个抽象概念.Java对设备中数据的操作是通过流的方式. 表示任何有能力产出数据的数据源对象,或者是有能力接受数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节.IO流用来处理设备之间的数据传输.设备是指硬盘.内存.键盘录入.网络等. Java用于操作流的对象都在IO包中.IO流技术主要用来处理设备之间的数据传输.…
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. LZ到目前已经写了九个设计模式,回过去看看,貌似写的有点凌乱,LZ后面会尽量改进. 那么本章LZ和各位读友讨论一个与JAVA中IO有着不解情缘的设计模式,装饰器模式. 定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象.             …
IO即数据读写.数据是应用的中心要素,而数据读写的能力和可扩展性是编程平台的基础支撑. 概念框架 方式: 字节流 Byte 和 字符流 Char 方向: 输入 Input 和 输出 Output : 读 Reader 和 写 Writer 源: 字符串 String, 数组 Array, 对象 Object, 文件 File, 通道 Channel, 管道 Pipe, 过滤器 Filter,控制台 Console, 网络 Network Link ; 一切可产生/接收数据的 Data 性能: 带…
1.流的概念:在Java中,流是从源到目的地的字节的有序序列.Java中有两种基本的流--输入流(InputStream)和输出流(OutputStream). 根据流相对于程序的另一个端点的不同,分为节点流和过滤流. (1)节点流:以特定源如磁盘文件.内存某区域或者线程之间的管道为端点的构造输入输出流,是一种基本的流. (2)过滤流:以其他已经存在的流为端点构造的输入输出流. 根据流中的数据单位分为字节流和字符流. (1)字节流:流中的数据是以8位字节为单位进行读写,以InputStream和…
text文件压缩包解析与下载 //压缩包下载  private StreamedContent newsTemplate; //该方法是对压缩包进行下载     public StreamedContent getNewsTemplate() { //对多个Text文件进行压缩         ZipFiles(files,file);           FileInputStream inputStream = null;         try {             inputStr…
FtpTransFile类 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.concurrent.CountDownLatch; import java…
Java IO 是 Java 的一套 API, 用于读入和写出数据(输入和输出).Java IO API 位于 java.io package.实际上 java.io package 没有解决所有的输入输出情况,例如,web 页面没有包含在 Java IO package 里面,而是由 Java 企业版本的 servlet 和 HTTP package 处理. Java IO package 关注文件.网络流(Network Stream), 内存缓冲区(internal memory buff…
初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂.而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝贵意见. 首先看个图:(如果你也是初学者,我相信你看了真个人都不好了,想想java设计者真是煞费苦心啊!) 这是java io 比较基本的一些处理流,除此之外我们还会提到一些比较深入的基于io的处理类,比如console类,SteamTokenzier,Externalizable接口,Serializa…
1.静态导入 作用:简化书写静态导入可以作用一个类的所有静态成员静态导入格式:import static 包名.类名静态导入要注意的事项:如果静态导入的成员与本类的成员存在同名的情况下,那么默认使用本类的静态成员,如果需要制定使用静态导入的成员,那么需要在静态成员前面加上类名. 2.增强for循环增强for循环的作用,简化迭代器的书写格式增强for循环的适用范围:如果是实现了Iterabl接口的对象或者是数组对象,,都可以使用增强for循环增强for循环的格式:for(变量类型 变量名:遍历的目…
文件上传在项目中应该是非常常见的,而且很多时候,上传文件都只是一个小页面中的一个功能,要求在实现文件上传的前提下不刷新页面.而一般情况下将客户端的文件包装成网络地址传递到服务器端然后通过流来进行文件传输的任务都是使用浏览器来帮我们完成的,一般情况下,我们的form表单提交,我们自己可以手动拿到表单的值,然后封装起来,发送ajax请求,为了安全着想,js是不允许访问客户端的文件系统的,所以而文件传输需要浏览器来完成,ajax上传其实是在页面中一小块区域加一个iframe对象然后引用到另一个页面,提…
网上各种方法的收集: 1.上次写了个解压缩功能,但有局限性,比如压缩文件xx.zip 里包括子目录的情况下,执行上次解压缩的功能就不能实现我们想要的效果,于是在网上参考了一下java的解压缩功能.对上次解压缩zip功能进行了修改. 现在也可以解压 那些包含子目录的zip文件. /** * 解压缩功能. * 将zipFile文件解压到folderPath目录下. * @throws Exception */ public int upZipFile(File zipFile, String fol…
以前有介绍过ajaxFileUpload实现文件上传,但那是单文件的,这次介绍多文件上传. 单文件上传参考:http://blog.csdn.net/itmyhome1990/article/details/23187087 单文件和多文件的实现区别主要修改两点, 一是插件ajaxfileupload.js里接收file文件ID的方式 二是后台action是数组形式接收 1.ajaxFileUpload文件下载地址http://www.phpletter.com/Demo/AjaxFileUpl…
jQuery插件ajaxFileUpload可以实现ajax文件上传,使用非常简单. 下面做一个简单的demo(以上传图片为例),实现图片上传,图片显示,图片下载 注:以下的代码是在项目的基础上进行开发.css样式文件.包路径等未做修改. 1. ajaxFileUpload文件下载地址http://www.phpletter.com/Demo/AjaxFileUpload-Demo/ 2.自行引入jquery.js.ajaxFileUpload.js文件 jsp核心代码: <script typ…