zoukankan      html  css  js  c++  java
  • Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile

    1. 随机访问流RandomAccessFile

    RandomAccessFile类不属于流,是Object类的子类。但它融合了InputStream和OutputStream的功能。支持对随机访问文件的读取和写入。

    RandomAccessFile的构造方法:

    构造方法摘要
    RandomAccessFile(File file, String mode)
              创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定。
    RandomAccessFile(String name, String mode)
              创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称。

    2.  代码示例:

     1 package cn.itcast_05;
     2 
     3 import java.io.IOException;
     4 import java.io.RandomAccessFile;
     5 
     6 /*
     7  * public RandomAccessFile(String name,String mode):第一个参数是文件路径,第二个参数是操作文件的模式。
     8  *         模式有四种,我们最常用的一种叫"rw",这种方式表示我既可以写数据,也可以读取数据 
     9  */
    10 public class RandomAccessFileDemo {
    11     public static void main(String[] args) throws IOException {
    12         // write();
    13         read();
    14     }
    15 
    16     private static void read() throws IOException {
    17         // 创建随机访问流对象
    18         RandomAccessFile raf = new RandomAccessFile("raf.txt", "rw");
    19 
    20         int i = raf.readInt();
    21         System.out.println(i);
    22         // 该文件指针可以通过 getFilePointer方法读取,并通过 seek 方法设置。
    23         System.out.println("当前文件的指针位置是:" + raf.getFilePointer());
    24 
    25         char ch = raf.readChar();
    26         System.out.println(ch);
    27         System.out.println("当前文件的指针位置是:" + raf.getFilePointer());
    28 
    29         String s = raf.readUTF();
    30         System.out.println(s);
    31         System.out.println("当前文件的指针位置是:" + raf.getFilePointer());
    32 
    33         // 我不想重头开始了,我就要读取a,怎么办呢?通过seek定位方法可以实现随机访问的功能
    34         raf.seek(4);
    35         ch = raf.readChar();
    36         System.out.println(ch);
    37     }
    38 
    39     private static void write() throws IOException {
    40         // 创建随机访问流对象
    41         RandomAccessFile raf = new RandomAccessFile("raf.txt", "rw");
    42 
    43         // 怎么玩呢?
    44         raf.writeInt(100);
    45         raf.writeChar('a');
    46         raf.writeUTF("中国");
    47 
    48         raf.close();
    49     }
    50 }

    运行效果,如下:

  • 相关阅读:
    打击目标
    面试中的坑,你能爬出来几个?
    [linux] 小问题:管道符,换行问题等;[nginx]启动,重启,关闭命令;以及升级nginx切换命令
    xshell下使用vim的编辑一个文件Ctrl+S和Ctrl+Q
    [PHP] 调用微博API 发微博OAuth2.0
    [YII2] 视图层过滤客户恶意代码
    [YII2] 增删改查2
    [YII2] 增删改查
    [YII2] 自带分页调整
    [JS] 自己弄得个倒计时
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4876106.html
Copyright © 2011-2022 走看看