RandomAccessFile类
该类主要是对文件内容进行操作,可以随机的读取一个文件中指定位置的数据;
但是如果想实现这样的功能,则每个数据的长度应该保持一致;
 
构造方法:
 
接受File类中的对象,但是在设置时需要设置模式,r:只读;w:只写;rw:读写(常用)
public RandomAccessFile(File file, String mode)throws FileNotFoundException
不再使用File类对象表示文件,而是直接输入了一个固定的文件路径
public RandomAccessFile(String name,String mode)throws FileNotFoundException
 
常用功能:
关闭操作
public void close()throws IOException
将一个字符串写入到文件中,按字节的方式处理
public final void writeBytes(String s)throws IOException
将一个int型数据写入文件,长度为4位
public final void writeInt(int v)throws IOException
指针跳过多少个字节
public int skipBytes(int n)throws IOException
将内容读取到byte数组中
public int read(byte[] b)throws IOException
读取一个字节
public final byte readByte()throws IOException
从文件中读取整型数据
public final int readInt()throws IOException
设置读指针的位置
public void seek(long pos)throws IOException
 
package cn.itcast02;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteOrder; public class DemoRandowAccessFile01 {
public static void main(String[] args) throws IOException {
File file = new File("G:" + File.separator +"JavaTest"+File.separator + "test01.txt" );
/*
RandomAccessFile rdf = new RandomAccessFile(file, "rw"); //写入文件内容
String name = " liuyan ";
int age = 40; rdf.writeBytes(name);
rdf.writeInt(age); String name2 = " xiaoming";
int age2 = 30; rdf.writeBytes(name2);
rdf.writeInt(age2); String name3 = " doudou ";
int age3 = 24; rdf.writeBytes(name3);
rdf.writeInt(age3);
rdf.close();
*/
//读取文件内容
RandomAccessFile rdf = new RandomAccessFile(file, "r" ); //创建空间存放姓名 byte[] bytes = new byte[8]; rdf.skipBytes(12); for (int i = 0; i < bytes.length; i++) {
bytes[i] = rdf.readByte();
}
//将byte转化为String
String name = new String(bytes);
int age = rdf.readInt(); System. out.println("第二个人信息" +"姓名:" +name+" " +"年龄:" +age); //指针返回到文件开头
rdf.seek(0);
rdf.close();
}
} 输出: 第二个人信息姓名:xiaoming  年龄:30

  

JavaIO流(02)RandomAccessFile类详解的更多相关文章

  1. URLConnection类详解-转

    转-http://www.cnblogs.com/shijiaqi1066/p/3753224.html 1. URLConnection概述 URLConnection是一个抽象类,表示指向URL指 ...

  2. 2020你还不会Java8新特性?方法引用详解及Stream 流介绍和操作方式详解(三)

    方法引用详解 方法引用: method reference 方法引用实际上是Lambda表达式的一种语法糖 我们可以将方法引用看作是一个「函数指针」,function pointer 方法引用共分为4 ...

  3. java之StringBuffer类详解

    StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...

  4. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  5. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  6. Java String类详解

    Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...

  7. QAction类详解:

    先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...

  8. JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表

    一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...

  9. Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解

    1.修改struts2常量配置(3种) 第一种 在str/struts.xml中添加constant标签 <struts> <!-- 如果使用使用动态方法调用和include冲突 - ...

随机推荐

  1. BZOJ 1898 Swamp 沼泽鳄鱼(矩阵)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1898 题意:一个无向图.给出起点和终点,以及某些时刻某些点不能到达的信息.问从起点出发在 ...

  2. git cheat sheet,git四张手册图

  3. oracle视图总结(转)

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  4. LA 3510 (置换 循环分解) Pixel Shuffle

    思路挺简单的,题目中的每个命令(包括命令的逆)相当于一个置换. 用O(n2k)的时间复杂度从右往左求出这些置换的乘积A,然后求m使Am = I(I为全等置换) 还是先把A分解循环,m则等于所有循环节长 ...

  5. bzoj1927: [Sdoi2010]星际竞速

    跟上一题几乎一样... #include<cstdio> #include<cstring> #include<iostream> #include<algo ...

  6. [.NET WebAPI系列03] WebAPI Controller 中标准CRUD方法

    [因] WebAPI的Controller中,一般都是下面四种方法: 对应于数据操作是我们通常所说的CRUD. C对应post,R对应Get,U对应Put,D对应Delete. 直接模仿VS 2012 ...

  7. codeforces 333A - Secrets

    题意:保证不能正好配齐n,要求输出可以用的最大硬币数. 注意如果用到某种硬币,那么这种硬币就有无穷多个.所以11=3+3+3+3,12=9+9,13=3+3+3+3+3 #include<cst ...

  8. HDU 4612 Warm up (边双连通分量+DP最长链)

    [题意]给定一个无向图,问在允许加一条边的情况下,最少的桥的个数 [思路]对图做一遍Tarjan找出桥,把双连通分量缩成一个点,这样原图就成了一棵树,树的每条边都是桥.然后在树中求最长链,这样在两端点 ...

  9. zollei的心动噪声探索性识别

    <Exploratory Identification of Cardiac Noise in fMRI Images> 这个方法,最特别的地方在于, 是从静息态的大脑数据中,抽取心动结构 ...

  10. 基于RTP的H264视频数据打包解包类

    from:http://blog.csdn.net/dengzikun/article/details/5807694 最近考虑使用RTP替换原有的高清视频传输协议,遂上网查找有关H264视频RTP打 ...