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

转载   2012-08-22   浏览量:238


Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。

RandomAccessFile的对象包含一个记录指针,用于标识当前流的读写位置,这个位置可以向前移动,也可以向后移动。RandomAccessFile包含两个方法来操作文件记录指针。

long getFilePoint():记录文件指针的当前位置。

彩票开奖查询 www.kbyp.net void seek(long pos):将文件记录指针定位到pos位置。

RandomAccessFile包含InputStream的三个read方法,也包含OutputStream的三个write方法。同时RandomAccessFile还包含一系列的readXxx和writeXxx方法完成输入输出。

RandomAccessFile的构造方法如下

 \

mode的值有四个

"r":以只读文方式打开指定文件。如果你写的话会有IOException。

"rw":以读写方式打开指定文件,不存在就创建新文件。

"rws":不介绍了。

"rwd":也不介绍。

下面是从中间开始读取文件

[java]
import java.io.RandomAccessFile; 
 
public class work { 
    public static void main(String[] args) throws Exception{ 
        RandomAccessFile raf=new RandomAccessFile("work","r"); 
        raf.seek(4); 
        byte []buffer=new byte[100]; 
        int len=0; 
        while((len=raf.read(buffer, 0, 100))!=-1) 
        { 
            System.out.println(new String(buffer,0,len)); 
        } 
 
    } 
 

import java.io.RandomAccessFile;

public class work {
 public static void main(String[] args) throws Exception{
  RandomAccessFile raf=new RandomAccessFile("work","r");
  raf.seek(4);
  byte []buffer=new byte[100];
  int len=0;
  while((len=raf.read(buffer, 0, 100))!=-1)
  {
   System.out.println(new String(buffer,0,len));
  }

 }

}
下面是在文件最后加入内容

[java]
import java.io.RandomAccessFile; 
 
public class work { 
    public static void main(String[] args) throws Exception{ 
        RandomAccessFile raf=new RandomAccessFile("work","rw"); 
        raf.seek(raf.length()); 
        raf.write("hello world!".getBytes()); 
        raf.close(); 
 
    } 
 

import java.io.RandomAccessFile;

public class work {
 public static void main(String[] args) throws Exception{
  RandomAccessFile raf=new RandomAccessFile("work","rw");
  raf.seek(raf.length());
  raf.write("hello world!".getBytes());
  raf.close();

 }

}
至于向文件中间添加内容的话,也是很好解决的。先将指针移到指定位置,把后面的保存到临时文件,再将指针移到指定位置,添加内容,然后再将临时文件的类容加到后面就可以了。这个我就不实现了,先看看《大秦帝国》21集,里面商鞅为大秦变法很犀利的,执法太严了,舍友正在看,呵呵,走了。

 

 

转载自:https://www.2cto.com/kf/201208/149816.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
RandomAccessFile类的简单介绍,以及代码演示
RandomAccessFile类,支持对文件的读取和写入。并且可以设置写入和读取的位置。该位置主要是以字节体现。相当于该文件存储在一个大型byte[]数组。隐含存在一个指向该数组的指针。类似于该类对象可以设置该隐含...
SequelizeAccessDeniedError的原因和解决方式
SequelizeAccessDeniedError的原因和解决方式。最后发现是写mysql的时候授权后没有flushprivileges;的原因。刚开始只写了第一句,没有写第二句。就出现了上面的错误。
列出的部分是Mssql语句,不可以在access中使用。
SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:
【Access2007】拯救被阉割的truncate
Access2007使用被阉割的J-SQL语句,语法跟T-SQL语句,也就是平常最标准的SQL语句一模一样,但就是仅保留insertinto,delete,select,update与没太大意义的过程体声明语句。而且不支持一次性执行多条语句。如果表
微信公众号开发模板消息推送(一) 获取access_token java
微信公众号开发模板消息推送(一)获取access_tokenjava,首先介绍一下模板消息:https:mpweixinqqcomwiki?id=mp1433751277&highline=%E6%A8%A1%E6%9D%BF。
利用PBfunc在Powerbuilder中使用https获取微信的AccessToken
在前篇中讲解了使用PBFunc在Powerbuilder自己进行http的GET和POST操作。本篇简单用代码演示下https的微信AccessToken的获取:1n_pbfunc_httplnv_http2lnv_httpof_clear()清空参数3string