过滤字节流FilterInputStream和FilterOutputStream

BufferedInputStream和BufferedOutputStream    需要使用已存在的节点流来构造,提供了带缓冲的读写,提高了读写的效率

package com.tanlei.InputOutputStream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class BufferedInputOutputDemo {
public static void main(String[] args) {
try {
FileUtil1.copyFile(new File("C:\\zhangsan\\tanlei.txt"), new File("D:\\zhangsan.txt"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class FileUtil1{
public static void copyFile(File src,File dst) throws IOException {
FileInputStream fis=new FileInputStream(src);
FileOutputStream fos=new FileOutputStream(dst);
BufferedInputStream bis=new BufferedInputStream(fis);
BufferedOutputStream bos=new BufferedOutputStream(fos); long time=System.currentTimeMillis();
int data=0;//用来保存实际读到的字节数
while ((data=bis.read())!=-1) {
bos.write(data);
}
bis.close();
bos.close();
long time2=System.currentTimeMillis();
System.out.println("共花费+"+(time2-time));
}
}

DataInputStream和DataOutputStream   基本数据类型进行操作

package com.tanlei.InputOutputStream;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class DataInputOutputDemo {
public static void main(String[] args) throws IOException {
String name="tanlei";
int age=20;
boolean flag=true;
char sex='男';
double money=110.56; DataOutputStream dos=new DataOutputStream(new FileOutputStream("D:\\aa.txt"));
dos.writeUTF(name);
dos.writeInt(age);
dos.writeDouble(money);
dos.writeChar(sex);
dos.writeBoolean(flag);
dos.close(); DataInputStream dis=new DataInputStream(new FileInputStream("D:\\\\aa.txt"));
System.out.println(dis.readUTF());
System.out.println(dis.readInt());
System.out.println(dis.readDouble());
System.out.println(dis.readChar());
System.out.println(dis.readBoolean());
dis.close();
}
}

总结:

提供带缓冲的读写

(六)IO流之过滤流的更多相关文章

  1. IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流

    Java基础笔记 – IO流分类详细介绍和各种字节流类介绍与使用 过滤流 字节流本文由 arthinking 发表于627 天前 ⁄ Java基础 ⁄ 评论数 1 ⁄ 被围观 2,036 views+ ...

  2. Java精选笔记_IO流(转换流、常用流、流操作规律、字符编码)

    IO流 用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作流的对象都在IO包中 按操作数据分为:字节流和字符流:按流向分为:输入流和输出流. 程序从输入流中读取数据,向输 ...

  3. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  4. Java IO 过滤流 BufferedInput/OutputStream

    Java IO 过滤流 BufferedInput/OutputStream @author ixenos 概念 BufferedInput/OutputStream是实现缓存的过滤流,他们分别是Fi ...

  5. 09 IO流(六)——ByteArray字节流、流对接

    字节数组流 ByteArray流是节点流. 前面讲到的文件字节流,文件字符流,他们的源都是来自于pc硬盘. 本节要讲的字节数组流的源是来自于内存或网络. 它更合适用来处理来自网络的字节流. 由于源并不 ...

  6. JAVASE(十六) IO流 :File类、节点流、缓冲流、转换流、编码集、对象流

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.File类型 1.1.File类的理解 File类是在java.io包下 File可以理解成一个文件 ...

  7. java IO流 之 其他流

    一.内存操作流(ByteArrayInputStream.ByteArrayOutputStream) (一).   public class ByteArrayInputStream extends ...

  8. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

  9. 【JAVA IO流之字符流】

    一.概述. java对数据的操作是通过流的方式.java用于操作流的对象都在IO包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来 ...

随机推荐

  1. Eclipse使用过程的常见问题:

     3-1  "Failed to load the JNI shared library"               -jdk 与eclipse位数不一致出现的问题 解决方法: ...

  2. python第四课

    1.lambda()函数 可以直接定义一个函数,简化用def的定义. >>> func=lambda x,y:x+y>>> print(func(3,4))7> ...

  3. Java 8 的新特性和Java 的4种引用方式

    一.接口的增强 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: interface Formula { double ca ...

  4. IDEA javax.servlet.http.HttpServletRequest; 不存在 解决方案

    使用idea创建一个web项目,在项目中报HttpServletRequest和HttpServletResponse不存在. 问题原因:idea不会默认引用tomcat的jar包. 解决方法: [注 ...

  5. 用js实现base64编码器

    base-64作为常见的编码函数,在基本认证.摘要认证以及一些HTTP扩展中得到了大量应用.在前端领域,也常常把图片转换为base-64编码在网络中传输.本文将详细介绍base64的原理及用js实现b ...

  6. 【笔记】LR11中关联设置

    LR中关联建议都手动进行,自动不好用,也容易出错. 在LR中我们什么要做关联:1.关联解决的是动态数据的参数化.2.关联的数据一定是服务器响应的数据.3.服务器响应过来的数据在后面的服务还要使用. 手 ...

  7. ADO.NET实体数据模型

    本文说一下如何使用ADO.NET实体数据模型,并解释一些概念. 1,首先你要建立一个数据库.比如我在SQL2005上面建立了数据库student,包含两个表: 2,然后再项目上添加新建项: 3,打开新 ...

  8. WPF:数据绑定--PropertyChangeNotification属性更改通知

      PropertyChangeNotification属性更改通知 实现效果:1.拍卖金额自动随属性值变化而通知界面绑定的值变化. 关键词 : INotifyPropertyChanged Obse ...

  9. [jnhs]未完待续HttpServletRequest示例

    uri: /kaihu/showip.html method: GET QueryString: null Parameters: Headers: Name: host Value: localho ...

  10. C# dataGridView_CellValueChanged事件

    C# 输入完以后立即更新缓冲区(DataGridView CheckBox列checked变化后就触发CellValueChanged事件) 在DataGridView添加如下的事件( Current ...