zoukankan      html  css  js  c++  java
  • Java之文件的随机访问和读写RandomAccessFile

     1 package FileDemo;
     2 
     3 import java.io.IOException;
     4 import java.io.RandomAccessFile;
     5 
     6 public class RandomAccessFileDemo {
     7 
     8     /**
     9      * @param args
    10      * @throws IOException
    11      */
    12     public static void main(String[] args) throws IOException {
    13 
    14         writeAccess();
    15         readAccess();
    16         randomWrite();
    17     }
    18 
    19     // 随机写入数据,可以实现对已有数据的修改,因为可以使用seek()方法改变文件指针的位置
    20     private static void randomWrite() throws IOException {
    21         RandomAccessFile raf = new RandomAccessFile("random.txt", "rw");
    22         raf.seek(8 * 4);//将文件指针移动到指定位置
    23         System.out.println(raf.getFilePointer());
    24         raf.write("Ruby".getBytes());
    25         raf.writeInt(99);
    26     }
    27 
    28     private static void readAccess() throws IOException {
    29         RandomAccessFile raf = new RandomAccessFile("random.txt", "r");
    30         System.out.println(raf.getFilePointer());
    31         raf.seek(8);// 用于实现随机读取文件中的数据,数据最号有规律
    32         System.out.println(raf.getFilePointer());
    33         byte buf[] = new byte[4];
    34         raf.read(buf);
    35         String name = new String(buf);
    36         int age = raf.readInt();
    37         System.out.println("name=" + name);
    38         System.out.println("age=" + age);
    39         System.out.println(raf.getFilePointer());
    40 
    41     }
    42 
    43     private static void writeAccess() throws IOException {
    44         // rw:当这个文件不存在,会创建文件,当文件已经存在,不会创建,所以不会出现和输出流一样的覆盖
    45         RandomAccessFile raf = new RandomAccessFile("random.txt", "rw");
    46         raf.write("Java".getBytes());
    47         raf.writeInt(97);
    48         raf.write("python".getBytes());
    49         raf.write(98);
    50         raf.close();
    51     }
    52 
    53 }
  • 相关阅读:
    企业级应用架构(二)三层架构之数据访问层的封装与抽象
    企业级应用架构(一) 三层架构之解耦
    AngularJS-01.AngularJS,Module,Controller,scope
    ASP.NET-A low-level Look at the ASP.NE
    批量Insert
    C#连接Oracle数据库的方法
    List 集合 一行4个排序
    asp.net 14
    Linux 定时任务的配置
    Windows 修改域用户账户密码
  • 原文地址:https://www.cnblogs.com/ysw-go/p/5310694.html
Copyright © 2011-2022 走看看