• 第十周课程总结


    第十周课程总结

    本周主要学习了Java IO里的文件操作和字节流与字符流,在实验课上还进行了实际运用

    这周学习的内容:

    1.RandomAccessFile类

    之前的File类只是针对文件本身进行操作的,而如果要想对文件内容进行操作,则可以使用RandomAccessFile类,此类属于随机读取类,可以随机的读取一个文件中指定位置的数据.
    RandomAccessFile类的常用操作方法

    2.字节流与字符流

    在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入主要是使用Reader类完成。

    • (1).字节流

    字节流主要是操作byte类型数据,以byte数组为准,主要操作类就是OutputStream、InputStream。

    OutputStream类:

    OutputStream是整个io包中字节输出流的最大父类,此类的定义如下:

    public abstract class OutputStream extends Object implements Closeable, Flushable
    

    从以上的定义中可以发现,此类是一个抽象类,如果要想使用此类的话,则首先必须通过子类实例化对象,那么如果现在要操作的是一个文件,则可以使用:FileOutputStream类。通过向上转型之后,可以为OutputStream实例化

    字节输入流:InputStream:

    既然程序可以向文件中写入内容,则就可以通过InputStream从文件中把内容读取进来,首先来看InputStream类的定义:

    public abstract class InputStream extends Object implements Closeable
    

    与OutputStream类一样,InputStream本身也是一个抽象类,必须依靠其子类,如果现在是从文件中读取,子类肯定是FileInputStream。

    观察FileInputStream类的构造方法:

    public FileInputStream(File file) throws FileNotFoundException 
    
    • (2).字符流

    在程序中一个字符等于2个字节,那么JAVA提供了Reader、Writer两个专门操作字符流的类。

    字符输出流:Writer

    Writer本身是一个字符流的输出类,此类的定义如下:

    public abstract class Writer extends Object implements Appendable, Closeable, Flushable
    

    此类本身也是一个抽象类,如果要想使用此类,则肯定要使用其子类,此时如果是向文件中写入内容,所以应该使用FileWriter的子类。
    FileWriter类的构造方法定义如下:

    public FileWriter(File file) throws IOException 
    

    字符输入流:Reader

    Reader是使用字符的方式从文件之中取出数据,Reader类的定义如下:

    public abstract class Reader extends Object implements Readable, Closeable
    

    Reader本身也是抽象类,如果现在要从文件中读取内容,则可以直接使用FileReader子类。
    FileReader的构造方法定义如下:

    public FileReader(File file) throws FileNotFoundException 
    

    字节流与字符流的选择:

    所有的文件在硬盘或在传输的时候都是以字节的方式进行的,包括图片等都是按字节的方式存储的,而字符是只有在内存中才会形成,所以在开发中,字节流使用较为广泛。

    3.管道流

    管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),如果要想进行管道输出,则必须把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:

    public void connect(PipedInputStream snk) throws IOException 
    
  • 相关阅读:
    (原)torch中threads的addjob函数使用方法
    (原)torch中提示Unwritable object <userdata> at <?>.callback.self.XXX.threads.__gc__
    (原)luarocks更新某个模块
    EL表达式
    leetcode 151反转单词
    括号生成
    leetcode 机器人能到达的位置
    leetcode 翻转数组
    leetcode 460 LFU缓存
    leetcode 42 接雨水
  • 原文地址:https://www.cnblogs.com/zhuwanxing/p/11784799.html
Copyright © 2020-2023  润新知