DataOutputStream 和 ObjectOutputStream的共同点是: 1.写出后读取 2.读取顺序和写出一致 数据流操作: // 写入 ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(baos)); dos.writeUTF("编码辛酸泪"); dos.writeI…
缓冲流.数据流以及对象流 一.缓冲流 缓冲流的概念:在读写的时候,对于单字节的读取会造成硬盘的频繁读写,增加访问次数,降低了读取文件的效率.而引入缓冲流之后,就可以将多个字节写入缓冲区,在缓冲区积累之后再输入输出. 注意:缓冲流属于包装流,只能对已有的流进行封装,不能直接关联文件进行操作. 1.1 字节缓冲流 字节缓冲输入/输出流:BufferedInputStream/BufferedOutputStream 1)继承自FilterInputStream/FilterOutputStream类…
Java IO(十一) DataInputStream 和 DataOutputStream 一.介绍 DataInputStream 和 DataOutputStream 是数据字节流,分别继承自 FilterInputStream 和 FilterOutputStream 和 实现了 DataInput 和 DataOutput.用来装饰其他的字节流. DataInputStream:数据字节输入流,用来装饰其他的输入流,允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型…
目录:系统学习 Java IO---- 目录,概览 DataInputStream/DataOutputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型. 要想使用数据输出流和输入流,必须按指定的格式保存数据,才可以将数据输入流将数据读取进来,所以通常使用 DataInputStream 来读取 DataOutputStream 写入的数据. DataInputStream 类能够从 InputStream 中读取 Java 基本类型(int,float,lo…
掌握DataOutputStream和DataInputStream的作用. 可以使用DataOutputStream和DataInputStream写入和读取数据. 在IO包中提供了两个与平台无关的数据操作流 数据输出流:DataOutputStream 数据输入流:DataInputStream 通常按照一定格式将输入输出,再按照一定格式将数据输入. 要想使用数据输出流和输入流,则肯定要用户指定数据的保存格式.必须按指定的格式保存数据,才可以将数据输入流将数据读取进来. DataOutput…
一.缓存流 以介质是硬盘为例子说明,字节流和字符流的缺点: 每次读写的时候,都会访问硬盘,如果读写频率比较高的时候,性能不佳.为了解决问题,采用缓存流. 缓存流在读取的时候,会一次性读较多的数据到缓存中,以后每一次的读取,都是在缓存中访问,直到缓存中的数据读取完毕,再到硬盘中区读取. 缓存流在写入数据的时候,会先把数据写入到缓存区,直到缓存区达到一定的量,才把这些数据,一起写入到硬盘中去,按照这种方式,就不会像字节流,字符流那样每次写一个字节都访问硬盘,减少了I/O操作. 1.使用缓存流读取数据…
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? 不带缓冲的操作,每读一个字节就要写入一个字节. 由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低. 带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里. 等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多! 这就是两者的区别…
一.根据流向分为输入流和输出流: 注意输入流和输出流是相对于程序而言的. 输出:把程序(内存)中的内容输出到磁盘.光盘等存储设备中      输入:读取外部数据(磁盘.光盘等存储设备的数据)到程序(内存)中 综合起来: 二.根据传输数据单位分为字节流和字符流 上面的也是 Java IO流中的四大基流.这四大基流都是抽象类,其他流都是继承于这四大基流的. 三.根据功能分为节点流和包装流 节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的流的连接和封…
一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.Writer; public class FileReaderWriterTest { public static void main(String[] args) throws…
一.字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为一个Unicode字符占用2个字节,而字节流一次只能操作一个字节.既然Java的口号就是"一次编写.处处运行",那么包含直接的字符输入/输出的支持是必要的.因此就有一些字符输入/输出流,之前已经说明过了,字符流顶层是Reader和Writer这两个抽象类,因此就从这里开始本文. 二.Reader Reader是定义J…