zoukankan      html  css  js  c++  java
  • RandomAccessFile的用法

    “r”:以只读的方式打开,调用该对象的任何write(写)方法都会导致IOException异常
    “rw”:以读、写方式打开,支持文件的读取或写入。若文件不存在,则创建之。
    “rws”:以读、写方式打开,与“rw”不同的是,还要对文件内容的每次更新都同步更新到潜在的存储设备中去。这里的“s”表示synchronous(同步)的意思
    “rwd”:以读、写方式打开,与“rw”不同的是,还要对文件内容的每次更新都同步更新到潜在的存储设备中去。使用“rwd”模式仅要求将文件的内容更新到存储设备中,而使用“rws”模式除了更新文件的内容,还要更新文件的元数据(metadata),因此至少要求1次低级别的I/O操作

    package test;
     
     
    import java.io.*;
    import java.sql.SQLClientInfoException;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.*;
    import java.util.concurrent.CountDownLatch;
    import java.util.zip.InflaterInputStream;
     
    import javax.annotation.processing.FilerException;
    import javax.management.RuntimeErrorException;
    
    import privateclass.Filterby_Name;
    import privateclass.Filterby_hidden;
    import privateclass.Filterby_java;
    import privateclass.MyBufferedReader;
    import privateclass.Person;
     
    public class Main {
     
        private static final String space_operator = " ";
        private static final double pi = Math.PI;
        private static final String LINE_SEPARATOR = System.getProperty("line.separator");
    	private static final int SIZE = 1024*1024;
    
    	/*
    	 * RandomAccessFile具有随机读取和随机读入的属性
    	  * 我们使用构造函数的时候
    	  * 第二个参数值能是
    	 *“r”:以只读的方式打开,调用该对象的任何write(写)方法都会导致IOException异常
    	 *“rw”:以读、写方式打开,支持文件的读取或写入。若文件不存在,则创建之。
    	 *“rws”:以读、写方式打开,与“rw”不同的是,还要对文件内容的每次更新都同步更新到潜在的存储设备中去。这里的“s”表示synchronous(同步)的意思
    	 *“rwd”:以读、写方式打开,与“rw”不同的是,还要对文件内容的每次更新都同步更新到潜在的存储设备中去。使用“rwd”模式仅要求将文件的内容更新到存储设备中,而使用“rws”模式除了更新文件的内容,还要更新文件的元数据(metadata),因此至少要求1次低级别的I/O操作
    	  * 我们可以用seek来设置指针的位置
    	  * 我们可以用getFilePointer来获取指针的位置
    	 */
        public static void main(String[] args) throws Exception {
    
        	RandomAccessFile raf = new RandomAccessFile("ran.txt","rw");
        	
        	//rafwrite(raf);
        	//rafread(raf);
        	randomwrite(raf);
        	
        	
        }
    	public static void randomwrite(RandomAccessFile raf) throws IOException {
    		raf.seek(3*8);
    		raf.write("李四".getBytes());
    		
    		raf.writeInt(33);
    		
    	}
    	public static void rafread(RandomAccessFile raf) throws IOException {
    		
    		//通过设置Pointer的位置来读取数据(随机性体现)
    		raf.seek(1*8);
    		byte buf[] = new byte[4];
    		raf.read(buf);
    		String name = new String(buf);
    		int age = raf.readInt();
    		//获取当前指针的位置
    		System.out.println(raf.getFilePointer());
    		System.out.println(name + "  " + age);
    		
    	}
    	public static void rafwrite(RandomAccessFile raf) throws IOException {
    		raf.write("张三".getBytes());
        	raf.writeInt(97);
        	
        	raf.write("小强".getBytes());
        	raf.writeInt(101);
    	}
    	
    }
    

      

  • 相关阅读:
    UIKit框架-高级控件:2.UIScrollView的单图分页设置
    欢迎使用CSDN-markdown编辑器
    UIKit框架-高级控件:1.UIScrollView的基本认识
    UIKit基础:18-MVC模式, 代理消息传递机制, 计时器机制
    UIKit基础:17-基础控件的总结
    UIKit基础:16-小游戏之舒尔特表
    UIKit基础:15-与电脑玩剪刀石头布
    iOS之 Category 属性 的理解
    学习方法,特别对于新手
    iOS 之GCD串行和并发队列的理解
  • 原文地址:https://www.cnblogs.com/WINDZLY/p/11827681.html
Copyright © 2011-2022 走看看