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. JAVA中获取项目文件路径

    在java中获得文件的路径在我们做上传文件操作时是不可避免的. web 上运行 1:this.getClass().getClassLoader().getResource("/" ...

  2. ie下jquery ajax 80020101错误的解决方法

    <script language="javascript">    <!--    function checkAll(name,isCheck){       ...

  3. 函数buf_page_create

    /********************************************************************//** Initializes a page to the ...

  4. Drupal 7.31版本爆严重SQL注入漏洞

    今早有国外安全研究人员在Twitter上曝出了Drupal 7.31版本的最新SQL注入漏洞,并给出了利用测试的EXP代码. 在本地搭建Drupal7.31的环境,经过测试,发现该利用代码可成功执行并 ...

  5. 深入分析 ThreadLocal 内存泄漏问题

    前言 ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度.但是如果滥用ThreadLocal,就可能 ...

  6. Linux find xargs rm .orig

    /********************************************************************* * Linux find xargs rm .orig * ...

  7. noip2008提高组题解

    第一题:笨小猴 模拟   第二题:火柴棒等式 搜索 深搜不用说,确定出两个加数然后判断能否拼出等式. 枚举确实不太好搞,因为枚举范围不确定,太大了容易超时,太小了容易漏解.不过这题的数据貌似很温和,我 ...

  8. c & c++中static的总结

    static 修饰的三种作用 (1) 静态局部变量 (2) 模块内的全局变量.函数,不可以被其他模块访问 (3) 类的静态成员 其中(3)只在c++中有. (1) 静态局部变量.局部变量一般在函数体内 ...

  9. zoj 1119 /poj 1523 SPF

    题目描述:考虑图8.9中的两个网络,假定网络中的数据只在有线路直接连接的2个结点之间以点对点的方式传输.一个结点出现故障,比如图(a)所示的网络中结点3出现故障,将会阻止其他某些结点之间的通信.结点1 ...

  10. 【转】visual studio 2012进行C语言开发[图文]

    原文网址:http://blog.csdn.net/chengyafei0104/article/details/9826025 现在大家计算机大概都脱离XP了,so,之前蛮多可以用的编译器,可能放在 ...