ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RandomAccessFile的用法

2019-11-09 20:57:35  阅读:314  来源: 互联网

标签:raf 文件 java 更新 用法 RandomAccessFile static import


“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);
	}
	
}

  

标签:raf,文件,java,更新,用法,RandomAccessFile,static,import
来源: https://www.cnblogs.com/WINDZLY/p/11827681.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有