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)       输出流

     

  • 相关阅读:
    FreeCommander 学习手册
    String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)
    StringBuffer 详解 (String系列之3)
    StringBuilder 详解 (String系列之2)
    java io系列26之 RandomAccessFile
    java io系列25之 PrintWriter (字符打印输出流)
    java io系列24之 BufferedWriter(字符缓冲输出流)
    java io系列23之 BufferedReader(字符缓冲输入流)
    java io系列22之 FileReader和FileWriter
    java io系列21之 InputStreamReader和OutputStreamWriter
  • 原文地址:https://www.cnblogs.com/zhihow/p/9851342.html
Copyright © 2011-2022 走看看