??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
RandomAccessFile类的简单介绍,以及代码演示

转载   2012-12-27   浏览量:442


RandomAccessFile类,支持对文件的读取和写入。并且可以设置写入和读取的位置。该位置主要是以字节体现。相当于该文件存储在一个大型byte[] 数组。隐含存在一个指向该数组的指针。类似于该类对象可以设置该隐含的指针位置进行对文件从任意位置开始读写。

RandomAccessFile类的构造方法。

RandomAccessFile(String name,String mode);//name 为与该类对象关联的文件名。mode为打开文件的访问模式。

RandomAccessFile(File file,String mode);//file为相关联的文件。mode同上。mode主要有一下四个值:

含意

"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException。

"rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。

"rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。

"rwd" 打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。

主要方法:

void write(byte[] b);将b.length个字节写入到文件的指定位置中去。

void write(int b);//向文件写入指定的字节。该方法只写如最低的八位。如 write(97) 和write(609)写入的内容一样。都是97 字母a。

void writeInt(int b);//按四个字节将int写入到文件中去。先写高位。

int read();//从文件中读取一个数据字节。

int read(byte[] b);//将最多b.length个数据字节从文件中读到改字节数组中去。

int readInt();//从文件中读取一个有符号的32位整数。

void seek(long pos);//设置文件读写的隐含指针位置偏移量。

long getFilePointer();返回文件中的当前偏移量。

void close();//关闭此随机访问文件流并释放与该流关联的所有系统资源。

代码演示:

[java]  

package RandromAccessDemo;  

  

import java.io.IOException;  

import java.io.RandomAccessFile;  

  

public class RandomAccessDemo {  

  

    /** 

     * @param args 

     * @throws IOException  

     */  

    public static void main(String[] args) throws IOException {       

//      write();  

//      read();  

        randomWriter();  

    }  

  

    public static void randomWriter() throws IOException {  

        /* 

         * 可以再多线程中进行对同一个文件进行写入。 

         */  

        RandomAccessFile raf = new RandomAccessFile("Random.txt","rw");  

//      raf.seek(3*8);//设置指针位置  

        raf.write("武松".getBytes());  

        raf.writeInt(103);  

    }  

  

    public static void read() throws IOException {  

        RandomAccessFile raf = new RandomAccessFile("Random.txt","r");  

        raf.seek(1*8);  

          

        byte []buf = new byte[4];  

        raf.read(buf);   

        String name = new String(buf);  

        int age = raf.readInt();  

        System.out.println("name :"+name+"  age : "+age);  

        System.out.println("getFilePointer: "+raf.getFilePointer());//获得当前指针位置。  

          

        raf.close();  

          

    }  

  

    public static void write() throws  IOException {  

        /* 

         * 当文件存在时,不创建,从指定位置开始写。当文件不存在时,则创建文件. 

         */  

        RandomAccessFile raf = new RandomAccessFile("Random.txt","rw");  

        raf.write("旺财".getBytes());  

//      raf.write( 97);//a write只写最低八位  

//      raf.write(609);//a  

        raf.writeInt(97);  

        raf.write("李煜".getBytes());  

        raf.writeInt(99);  

          

        raf.close();  

    }  

  

}  

 

 

 

转载自:https://www.2cto.com/kf/201212/179551.html

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



报错:Accessdeniedforuser'root'@'localhost' usingpassword:YES 的解决办法
报错:[email protected](usingpassword:YES)的解决办法。解决方案:打开MySQL目录下的myini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(WIN7默认安装,myini在C:ProgramDataMySQLMySQLServer56)
java解决 No enclosing instance of type XXX is accessible的问题
有些时候我们要把Activity的一些实现类移到java类里来实现,比如把写以下两个类:在LifeCircle这个类中:publicclassLifeCircle{publicclassMybroadcastextendsBroadcastReceiver{@Overrid
Hibernate执行查询后又立马执行了更新(default-access)
在项目中遇到利用hibernate执行查询后立马又对数据库数据进行了更新,导致了错误。[java]<spanstyle="font-size:14px;">publicStringgetName(){if(this.name==null){this.nam...
RandomAccessFile类的简单介绍,以及代码演示
RandomAccessFile类,支持对文件的读取和写入。并且可以设置写入和读取的位置。该位置主要是以字节体现。相当于该文件存储在一个大型byte[]数组。隐含存在一个指向该数组的指针。类似于该类对象可以设置该隐含...
windows环境下出现Error 1045 28000 Access Denied for user 'root'@'localhost'解决方法
windows环境下出现Error1045(28000)[email protected]解决方法。1先在安装目录找到myini配置文件,打开配置文件,找到[mysqld]一行,在下面添加skip-grant-tables后保存该文件,重新启mysql动服务。
Microsoft Access (Snapview.ocx 10.0.5529.0) ActiveX Remote Exploit
/* Microsoft Access Snapshot Viewer ActiveX Control Exploit Ms-Acees SnapShot Exploit Snapview.ocx v 10.0.5529.0 Download nice binaries into an arbitrary box Vulnerability discovered by Oliver Lavery //www.securityfocus.
laravelSQLSTATE HY000 1045 Accessdeniedforuser'homestead'@'localhost' usingpassword:YES
PDOExceptioninConnectorphpline55:SQLSTATE[HY000][1045][email protected](usingpassword:YES)出现问题解决方法如下:
##Accessdeniedforuser'root'@'localhost' usingpassword:YES 问题解决方案
[email protected](usingpassword:YES)问题解决方案。解决方案:虚拟机里面安装的mysql数据库
简单实例:AccessVBA打开Excel表格然后关闭
简单实例:AccessVBA打开Excel表格然后关闭。