zoukankan      html  css  js  c++  java
  • JavaIO

    1. Java文件对象

    Java中File类提供了四种构造方式。

     

    这四种构造方式实现了Java可以在默认路径创建文件/文件夹、在给定路径下创建文件。

    对于一个文件对象,可以访问它的名字、父路径、绝对路径、相对路径。

    File也提供了创建一个文件、文件夹、临时文件的方法。

    File提供了很多对文件的操作和查看方法,具体查阅API。

    文件的读写要使用到流。

    2.IO分类

    JavaIO流的体系

     

    2.1按照流向

    a)       输入流

    只能向其中读取数据不能写入数据。(磁盘->内存、网络->本地)(基类:InputSream和Reader)

    b)       输出流

    只能向其中写入数据不能读取数据。(内存->磁盘、服务器->网络)(基类:OutputSream和Writer)

     

    2.2按照操作数据单位

    字节流和字符流的操作几乎一致,区别在于操作单位。

    a)       字节流

    字节流的操作单位是8位的字节。主要由InputStream和OutputStream作为基类。

     

    b)       字符流

    字符流的操作单位是16位的字符。主要由Reader和Writer作为基类。

     

    字符流和字节流的使用时机

    处理音频文件、图片、歌曲,优先使用字节流;
    处理是关系到中文(文本)的,使用字符流更佳;

    可以使用字符流处理的也可以用字节流处理,能使用字节流处理的不一定能使用字符流处理。

    区别:

    1、字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的

    2、字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容

    3、Reader类的read()方法返回类型为int :作为整数读取的字符(占两个字节共16位),范围在 0 到 65535 之间 (0x00-0xffff),如果已到达流的末尾,则返回 -1
    inputStream的read()虽然也返回int,但由于此类是面向字节流的,一个字节占8个位,所以返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。因此对于不能用0-255来表示的值就得用字符流来读取!比如说汉字.

    4、字节流与字符流主要的区别是他们的的处理方式

    字节流:处理字节和字节数组或二进制对象;

    字符流:处理字符、字符数组或字符串。

    2.3按照角色

    a)       节点流(介质流)

    可以从/向一个特定的IO设备(磁盘、网络)读/写数据的流。

     

    程序直接连接到数据源,和实际的输入输出节点连接。

    b)       操作流(装饰流)

    用于对已存在的流进行连接或封装,通过封装后的流来实现读写。

     

    区分处理流和节点流

    如若一个流的构造函数的参数是一个数据源说明是节点流,

    如果一个流的构造函数参数是一个字节流说明是操作流程。

    处理流的优点

    1. 对于开发人员来讲,处理流的操作更加简单。
    2. 处理流的执行效率更高。

    3.流的概念模型

    a)       输入流

     

    b)       输出流

     

  • 相关阅读:
    git的使用
    免安装版mySQL的安装及配置
    Eclipse中安装freemarker插件
    freemarker配置
    Matlab机器人工具箱安装教程
    书籍推荐
    电影推荐
    自走棋地精猎玩法
    wineqq中接收文件的查看与移动
    windows和linux键值表
  • 原文地址:https://www.cnblogs.com/zhihow/p/9851342.html
Copyright © 2011-2022 走看看