码迷,mamicode.com
首页 > 数据库 > 详细

RandomAccessFile类

时间:2015-05-04 10:11:55      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:java程序面试宝典   randomaccessfile   

stream流都是只读或只写的,数据流的外部文件都是顺序的,如果不创建新文件就不能更新它们。因此提供了RandomAccessFile来对文件进行读取和修改。

需要注意的是RandomAccessFile直接继承自Object,不熟与stream结构

首先,

RandomAccessFile类实现了DataInput接口和DataOutput接口。

因此可以读取基本数据类型和字符串(readInt,readDouble,readChar,readBoolean和readUTF)

也可以写基本数据类型和字符串(writeInt,writeDouble,writeChar,writeBoolean和writeUTF)

其次,

RandomAccessFile有两种模式,只读(r)和读写(rw)

RandomAccessFile(file:File,mode:String)

RandomAccessFile(nam:String,mode:String)

需要注意到,创建RandomAccessFile对象必须指定mode,

方法

close()

getFilePointer():long

read():int

read(b:byte[]):int

read(b:byte[],off:int,len:int)

seek(pos:long)              设置文件指针的位置

setLength(newLength:long)          设置文件新长度

skipBytes(int n)             跳过多少个字节

write(int n)

write(b:byte[])

write(b:byte[],off:int,len:int)

import java.io.*;
public class RandomAccessFileTest{
        public static void main(String[] args) throws IOException{
                int n =  Integer.valueOf(args[0]);
                RandomAccessFile raf = new RandomAccessFile("inout.dat","rw");
                raf.setLength(0);
                for(int i = 1; i <= n ;i++){
                        raf.writeInt(i);
                }
                System.out.println("File length:" + raf.length());
                raf.seek(0);
                System.out.println("The first num :" + raf.readInt());
                raf.seek(1*4);
                System.out.println("The second num :" + raf.readInt());
                raf.seek(9*4);
                System.out.println("The tenth num:" + raf.readInt());
                raf.writeInt(555);
                raf.seek(raf.length());
                raf.writeInt(999);
                System.out.println("File length:" + raf.length());
                raf.seek(10*4);
                System.out.println("The eleventh num:" + raf.readInt());
        }
}
 java RandomAccessFileTest 200
File length:800
The first num :1
The second num :2
The tenth num:10
File length:804
The eleventh num:555
本程序一者验证这个文件读取功能,一者验证args参数的读取

RandomAccessFile类

标签:java程序面试宝典   randomaccessfile   

原文地址:http://blog.csdn.net/havedream_one/article/details/45461495

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!