zoukankan      html  css  js  c++  java
  • Java基础(二十八)Java IO(5)RandomAccessFile类与过滤器流(Filter Stream)

      一、RandomAccessFile类

      使用RandomAccessFile类可以读取任意位置数据的文件。

      1.构造方法

    • RandomAccessFile(String name, String mode)
    • RandomAccessFile(File file, String mode)

      其中“mode”表示:r(只读)、rw(可读写)、rws(同步写入)、rwd(更新同步写入)

      2.常用方法

      

      3.示例代码

    package jun.iplab.RandomAccessFile;
    
    import java.io.*;
    
    public class RandomAccessFileTest {
    
        public static void main(String[] args) {
            int[] bytes = {1,2,3,4,5};
            try {
                RandomAccessFile raf = new RandomAccessFile("D:\JavaIOTest\RandomAccessFileTest.txt", "rw");
                // 按照顺序将数据写入文件中
                for (int i = 0; i < bytes.length; i++) {
                    raf.writeInt(bytes[i]);
                }
                // 按照倒序读出数据
                for (int i = bytes.length - 1; i >= 0; i--) {
                    // 由于int型数据占4个字节,因此文件指针位置需要乘以4
                    raf.seek(i*4);
                    // 从文件中读出数据并输出到控制台
                    System.out.println(raf.readInt());
                }
                raf.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    输出:
    5
    4
    3
    2
    1

      二、读写二进制数据

      过滤器流是为某种目的过滤字节或字符的数据流。

      基本的输入流提供的读取方法,只能用来读取字节或字符。而过滤器流能够读取整数值、双精度值或字符串,但需要一个过滤器类来包装输入流。

      DataInputStream和DataOutputStream类分别是FilterInputStream和FileOutputStream类的子类。它们分别实现了DataInput和DataOutput接口,该接口中定义了独立于具体机器的带有格式的读写操作,从而可以实现对Java中的不同基本类型的读写。

      DataOutput接口定义了用于以二进制形式写数组、字符、Boolean值和字符串的各种方法。

      DataInput接口定义了读取二进制形式数据的各种方法。

      例如:

      为了从文件中读入二进制数据,可以将DataInputStream与某个字节源相结合,例如FileInputStream:

    DataInputStream dis = new DataInputStream(new FIleInputStream("employee.dat"));

      与此类似,要想写出二进制数据,可以使用DataOutputStream类:

    DataOutputStream dos = new DataOutputStream(new FIleOutputStream("employee.dat"));
  • 相关阅读:
    C语言实现时间差、星期、天数算日期(转)
    windbg 源码调试设置
    Windbg调试命令详解
    突破session 0隔离 和 劫持exe注入(转自梦无极)
    debug : StartService failed, getlasterror = 0x7f(127) 转
    反调试技巧总结-原理和实现
    关于Win7 x64下过TP保护(内核层)(转)
    python将dict中的unicode打印成中文
    Python 获取接口数据,解析JSON,写入文件
    python提取网页中json数据
  • 原文地址:https://www.cnblogs.com/BigJunOba/p/9412959.html
Copyright © 2011-2022 走看看