zoukankan      html  css  js  c++  java
  • RandomAccessFile

    RandomAccessFile类的主要功能是完成随机的读取操作,本身也可以直接向文件中保存内容。

    如果要想实现随机读取,则在存储数据的时候要保证数据长度的一致性,否则是无法实现功能的。

    构造方法:public RandomAccessFile(File file,String mode) 

    需要接受一个File类的实例,并设置一个操作的模式:

    读模式:r

    写模式:w

    读写模式:rw,如果文件不存在则自动给用户创建文件

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.io.IOException;

    import java.io.RandomAccessFile;

    public class RandomAcessDemo {

    public static void main(String args[])

    {

    File file=new File("d:"+File.separator+"demo.txt");

    try {

    RandomAccessFile raf=new RandomAccessFile(file,"rw");

                //写入第一条数据

    String name="zhangsan";

                int age=30;

                raf.writeBytes(name);//以字节的方式将字符串写入

                raf.writeInt(age);//写入整形数据

                //写入第二条数据

                name="lisi    ";

                age=20;

                raf.writeBytes(name);

                raf.writeInt(age);

                raf.close();//关闭文件操作

    } catch (IOException e) {

    e.printStackTrace();

    }

      

    }

    }

    在RandomAccessFile操作的时候读取的方法都是从DataInput接口实现而来,有一系列的readXX()方法,可以读取各种类型的数据,但是在RandomAccessFile中因为可以实现的读取,所以有一系列的控制方法
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    public class RandomAcessDemo {
    public static void main(String args[])
    {
    File file=new File("d:"+File.separator+"demo.txt");
    try {
    RandomAccessFile raf=new RandomAccessFile(file,"rw");
                byte[] b=null;
                String name=null;
                int age=0;
                raf.skipBytes(12);//跨过第一个人的信息
                System.out.println("第二个人的信息:");
                for(int i=0;i<8;i++)
                {
                  b[i]=raf.readByte();//读取字节
                }
                age=raf.readInt();//读取数字
                System.out.println("姓名:"+new String(b));
    } catch (IOException e) {
    e.printStackTrace();
    }
      
    }
    }
    在java中要想进行io的操作一般都使用字节流和字符流

  • 相关阅读:
    java语言yaml序列化到文件存在类型tag
    springboot项目banner生成
    mysql自动生成大量数据
    Mysql架构
    python爬虫-UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte
    六 领域驱动设计-领域对象的生命周期
    五 领域驱动设计-软件中所表示的模型
    四 领域驱动设计-分离领域
    模型驱动设计的构造块
    三 领域驱动设计-运用领域模型-绑定模型和实现
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1947897.html
Copyright © 2011-2022 走看看