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. VS2015中快捷注释代码块

    注释ctrl+k   ctrl+c 反注释ctrl+k ctrl+u 需要注意的是第二个ctrl不能省略的

  2. SQL中查询优化的主要策略

    为了能提高查询效率按优先级主要有一下策略: 1.尽可能早的执行选择操作(最基本的一条) 2.把笛卡尔积和随后的选择操作合并成F连接运算 3.同时计算一连串的选择和投影运算 4.保留同一子式的结果 5. ...

  3. jquery select操作和联动操作

    (function(){ //select操作 $.fn.loadSelect = function(opt){ opt = $.extend({}, { required:false,//为真则添加 ...

  4. csv,txt,excel文件之间的转换,perl脚本

    最近接触一些需要csv,txt,excel文件之间的转换,根据一些网上搜索加上自己的改动,实现自己想要的结果为主要目的,代码的出处已经找不到了,还请见谅,以下主要是针对csv&excel 和t ...

  5. windows2003 IIS6网络负载平衡设置

    问题 随着计算机技术的不断发展,单台计算机的性能和可靠性越来越高.但现实中还是有许多应用是单台计算机难以达到,例如: 1.银行存储用户数据的数据库服务器必须保证24小时不间断的运转,并在发生严重硬件故 ...

  6. 为什么要CGI

    1.微软为什么使用CGI? 微软曾经在不同场合极力推荐它的ASP技术,以取代CGI标准,这对微软当然是有利的,但是对一个网站来说ASP是不是一个明智的选择呢?这是一个值得大家深思熟虑的问题. 因为一旦 ...

  7. 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)

    对于提交的苹果官方的app,在审核的时候会给我们一些crash文件,对于这些有用的文件,里面是关于我们的bug的一些信息,那么该如何去调试呢 第一步:在任意目录创建一个目录,用来调试crash,我这里 ...

  8. Android中FragmentPagerAdapter对Fragment的缓存(二)

    上一篇我们谈到了,当应用程序恢复时,由于FragmentPagerAdapter对Fragment进行了缓存的读取,导致其并未使用在Activity中新创建的Fragment实例.今天我们来看如何解决 ...

  9. LwIP编译方法以及选项说明

    条件编译命令 作用说明 IP_SOF_BROADCAST   LWIP_IGMP  

  10. mount

    产品,平台,RS6000, pseries 软件版本, aix 当NFS在NFS客户端加载时,系统会问是使用 soft-mount 还是hard-mount, 它们之间有什么区别? 它们的区别在于当发 ...