• java_randomAccessFile类的使用


    RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件。
    RandomAccessFile支持随机访问文件,可以访问文件的任意位置

    (1)java文件模型
    在硬盘上的文件是byte byte byte存储的,是数据的集合
    (2)打开文件
    有两种模式"rw"(读写) "r"(只读)
    RandomAccessFile raf = new RandomeAccessFile(file,"rw")
    文件指针,打开文件时指针在开头 pointer = 0;
    (3) 写方法
    raf.write(int)--->只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
    (4)读方法
    int b = raf.read()--->读一个字节
    (5)文件读写完成以后一定要关闭(Oracle官方说明)

    package randomAccessFIle;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.util.Arrays;
    
    public class randomAccessFile{
    
        public static void main (String[] args) throws IOException {
            File demo=new File("demo");
            if(!demo.exists())
                demo.mkdir();
            File file=new File(demo,"raf.dat");
            if(!file.exists())
                file.createNewFile();
             RandomAccessFile raf=new RandomAccessFile(file,"rw");
             System.out.println(raf.getFilePointer());
             
             raf.write('A');//只写一个字节
             System.out.println(raf.getFilePointer());
             raf.write('B');
             
             int i=0x7fffffff;
             //用write方法一次只能写一个字节,把i整个写进去要write四次
             raf.write(i>>>24);
             raf.write(i>>>16);
             raf.write(i>>>8);
             raf.write(i);
             System.out.println(raf.getFilePointer());
             
             raf.writeInt(i);
             String s="李";
             byte[] gbk=s.getBytes("gbk");
             raf.write(gbk);
             System.out.println(raf.length());
             
             //读文件,必须把指针移到头部
             raf.seek(0);
             //一次性读取,把文件中的内容一次读到字节数组里
             byte[] buf=new byte[(int) raf.length()];
             raf.read(buf);
             System.out.println(Arrays.toString(buf));
             for(byte b:buf){
                 System.out.println(Integer.toHexString(b&0xff)+" ");
             }
             raf.close();
        }
    }
  • 相关阅读:
    锚的应用
    有关于MP3音频文件的编码解码资料吗
    自定义web.config配置节 (转)
    HTC 文件
    Asp.Net音频文件上传和播放
    dotnet下用c#编写下载器
    自动滚屏代码
    agsXMPP分析:agsXMPP Namespace
    Socket网络编程学习笔记(1)
    (♂)程序打包工具setup2go使用教程
  • 原文地址:https://www.cnblogs.com/jasonlixuetao/p/5554311.html
Copyright © 2020-2023  润新知