zoukankan      html  css  js  c++  java
  • 二.2 java高级-IO

    流的方向:输入流/输出流    操作单元:字节流/字符流    流的角色:节点流/处理流(低级流/高级流)

    (节点流:直接连接数据源节点进行读写  处理流:对节点流进行封装,程序连接到已存在的流上,不会连接到数据源)

    一.字节流

    1.文本,图片,音频,视频都是以二进制(字节)形式存在的

    2.字节流读写文件:FileInputStream/FileOutputStream。可以实现文件的拷贝

    3.字节流的缓冲区:一个字节一个字节的读写,需要频繁的操作文件,效率很低。可以建一个临时缓冲区(数组)

    4.字节缓冲流:BufferedInputStream/BufferedOutputStream

    二.字符流

    1.字符流操作文件:FileReader/FileWriter。也可以建字符流缓冲器提高效率

    2.字符缓冲流:BufferedReader/BufferedWriter

    三:转换流

    InputStreamReader:字节输入流转换成字符输入流

    OutputStreamWriter:字节输出流转换成字符输出流

    四.File类

    1.IO流可以对文件内容就行读写,但对文件本身进行的一些常规操作是无法通过IO流来实现的

    五.RandomAccessFile

    1.可以从文件任意位置开始执行读写操作

    六.对象序列化

    1.对象序列化:将一个java对象转换成一个IO流中字节序列的过程,使内存中的对象转换成与平台无关的二进制流

     目的是为了将对象保存到磁盘上,或将java对象在网络中传输

     将IO流中的字节序列恢复成java对象称为反序列化

    七.NIO 

    1.从jdk1.4引入

    2.NIO采取内存映射文件的方式来处理输入输出。使用的通道(Channel)和缓冲区(Buffer)

    八.NIO.2

    1.jdk7引入

    2.Path接口,Paths和Files两个工具类

    面试题:

    1.不管是⽂件读写还是⽹络发送接收,信息的最⼩存储单元都是字节,那为什么IO流操作要分为字节流操作和字符流操作呢?

    如果⾳频⽂件、图⽚等媒体⽂件⽤字节流比较好,如果涉及到字符的话使⽤字符流⽐较好。
    要不然字符流将有Java 虚拟机将字节转换得到,这个过程⾮常耗时 




  • 相关阅读:
    元数据管理
    sqoop 安装
    postgres 索引
    postgres 表和库等信息大小统计
    Perl基础语法
    Perl 认识简介
    Oracle层次查询start with connect by
    jquery.cookie.js 的使用指南
    JavaScript中cookie使用
    CSS实现垂直居中的4种思路
  • 原文地址:https://www.cnblogs.com/midiyu/p/15123091.html
Copyright © 2011-2022 走看看