美文网首页
Java学习-IO流

Java学习-IO流

作者: Spring_Dragon | 来源:发表于2020-02-22 11:52 被阅读0次

    title: IO流
    date: 2020-02-02 21:51:26
    tags:
    -IO流
    categories: Java学习


    前言

    最近系统的学习了一下JAVA里面的IO流,IO流是Java的重要特性,通过IO流可以很好的支持网络传输,这就是为什么说Java是为互联网而生的。

    一,File类

    要想了解IO流首先的学习file类:

    1.file类定义

    1. java.io.file类是专门对文件进行操作的类,只能对文件本身进行操作,不能对文件内容进行操作。
    2. File类是“文件和目录路径名的抽象表示”,而不是指文件内容(IO)。

    2.file类的构造方法与常用方法

    构造方法
    File(String parent, String child)从父路径名字符串和子路径名字符串创建新的 File实例。
    File(URI uri)通过将给定的 file: URI转换为抽象路径名来创建新的 File实例。
    File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
    Modifier and Type Method and Description
    boolean canRead()测试应用程序是否可以读取由此抽象路径名表示的文件。
    boolean canWrite()测试应用程序是否可以修改由此抽象路径名表示的文件。
    boolean createNewFile()当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
    boolean delete()删除由此抽象路径名表示的文件或目录。
    boolean exists()测试此抽象路径名表示的文件或目录是否存在。
    File getAbsoluteFile()返回此抽象路径名的绝对形式。
    String getName()返回由此抽象路径名表示的文件或目录的名称。
    boolean isDirectory()测试此抽象路径名表示的文件是否为目录。
    boolean isFile()测试此抽象路径名表示的文件是否为普通文件。
    boolean isHidden()测试此抽象路径名命名的文件是否为隐藏文件。
    long lastModified()返回此抽象路径名表示的文件上次修改的时间。
    long length()返回由此抽象路径名表示的文件的长度。
    boolean mkdir()创建由此抽象路径名命名的目录。
    boolean mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
    String[] list()返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。

    二、IO流

    2.1流的概念:

    流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流。流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

    2.2IO流的分类:

    根据处理数据类型的不同分为:字节流(二进制,可以处理一切文件,文本,音频等)和字符流(文本文件,只能是纯文本,像txt)。

    根据数据流向不同分为:输入流和输出流。

    image

    三、字节流

    3.1字节输入流OutputStream

    OutputStream此抽象类,是表示字节输出流的所有类的超类。操作的数据都是字节,定义了输出字节流的基本共性和方法。

    常用方法

    Modifier and Type Method and Description
    void close()关闭此输出流并释放与此流相关联的任何系统资源。
    void flush()刷新此输出流并强制任何缓冲的输出字节被写出。
    void write(byte[] b)b.length字节从指定的字节数组写入此输出流。
    void write(byte[] b, int off, int len)从指定的字节数组写入 len个字节,从偏移 off开始输出到此输出流。
    abstract void write(int b)将指定的字节写入此输出流。

    3.2字节输出流InputStream

    InputStream此抽象类,是字节输入流的所有类的超类。定义了字节输入流的基本共性功能方法。

    常用方法

    Modifier and Type Method and Description
    int available()返回从该输入流中可以读取(或跳过)的字节数的估计值,而不会被下一次调用此输入流的方法阻塞。
    void close()关闭此输入流并释放与流相关联的任何系统资源。
    void mark(int readlimit)标记此输入流中的当前位置。
    boolean markSupported()测试这个输入流是否支持 markreset方法。
    abstract int read()从输入流读取数据的下一个字节。
    int read(byte[] b)从输入流读取一些字节数,并将它们存储到缓冲区 b
    int read(byte[] b, int off, int len)从输入流读取最多 len字节的数据到一个字节数组。
    void reset()将此流重新定位到上次在此输入流上调用 mark方法时的位置。
    long skip(long n)跳过并丢弃来自此输入流的 n字节数据。

    四、字符流

    4.1读取字符流Reader

    用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率,附加的功能或两者。

    构造方法

    Modifier Constructor and Description
    protected Reader()创建一个新的字符流阅读器,其关键部分将在阅读器本身上同步。
    protected Reader(Object lock)创建一个新的字符流阅读器,其关键部分将在给定对象上同步。

    常用方法

    Modifier and Type Method and Description
    abstract void close()关闭流并释放与之相关联的任何系统资源。
    void mark(int readAheadLimit)标记流中的当前位置。
    boolean markSupported()告诉这个流是否支持mark()操作。
    int read()读一个字符
    int read(char[] cbuf)将字符读入数组。
    abstract int read(char[] cbuf, int off, int len)将字符读入数组的一部分。
    int read(CharBuffer target)尝试将字符读入指定的字符缓冲区。
    boolean ready()告诉这个流是否准备好被读取。
    void reset()重置流。
    long skip(long n)跳过字符

    4.2写入字符流流Write

    用于写入字符流的抽象类。 子类必须实现的唯一方法是write(char [],int,int),flush()和close()。 然而,大多数子类将覆盖这里定义的一些方法,以便提供更高的效率,附加的功能或两者。

    构造方法

    Modifier Constructor and Description
    protected Writer()创建一个新的人物流作家,其关键部分将在作者本身上同步。
    protected Writer(Object lock)创建一个新的字符流写入器,其关键部分将在给定对象上进行同步。

    常用方法

    Modifier and Type Method and Description
    Writer append(char c)将指定的字符附加到此作者。
    Writer append(CharSequence csq)将指定的字符序列附加到此作者。
    Writer append(CharSequence csq, int start, int end)将指定字符序列的子序列附加到此作者。
    abstract void close()关闭流,先刷新。
    abstract void flush()刷新流。
    void write(char[] cbuf)写入一个字符数组。
    abstract void write(char[] cbuf, int off, int len)写入字符数组的一部分。
    void write(int c)写一个字符
    void write(String str)写一个字符串
    void write(String str, int off, int len)写一个字符串的一部分。

    相关文章

      网友评论

          本文标题:Java学习-IO流

          本文链接:https://www.haomeiwen.com/subject/dyclqhtx.html