RandomAccessFile 这个类的用法 就是随即存储,最好给个列子哈 RandomAccessFile 这个类的用法 就是随即存储,最好给个列子哈 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【xumin51333】截止到2008-07-19 13:52:58的历史汇总数据(不包括此帖):发帖的总数量:3 发帖的总分数:210 每贴平均分数:70 回帖的总数量:1 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:3 结贴的总分数:210 无满意结贴数:0 无满意结贴分:0 未结的帖子数:0 未结的总分数:0 结贴的百分比:100.00% 结分的百分比:100.00% 无满意结贴率:0.00 % 无满意结分率:0.00 % 敬礼! 我觉得主要就是seek的用法,来随意的移动位置读取内容,比如你想跳过第一行不读,只读下面那些,就要用到seek。 下面这个例子就是。记录破记录的人的名单,先在已有名单里面查找,有的话就修改下破记录的分数,没有就跳到下一个,然后插入public class TestRandomAccessFile{ private File file; public static void main(String[] args){ TestRandomAccessFile traf = new TestRandomAccessFile(); traf.init(); traf.record("Billy",22); traf.listAllRecords(); } public void record(String record_breaker, int times){ try{ RandomAccessFile raf = new RandomAccessFile(file,"rw"); boolean flag = false; while(raf.getFilePointer() < raf.length()){ String name = raf.readUTF(); if(record_breaker.equals(name)){ raf.writeInt(times); flag = true; break; }else{ raf.skipBytes(4); } } if(!flag){ raf.writeUTF(record_breaker); raf.writeInt(times); } raf.close(); }catch(Exception e){ e.printStackTrace(); } } public void init(){ if(file == null){ file = new File("record.txt"); try{ file.createNewFile(); }catch(IOException e){ e.printStackTrace(); } } } public void listAllRecords(){ try{ RandomAccessFile raf = new RandomAccessFile(file,"r"); while(raf.getFilePointer() < raf.length()){ String name = raf.readUTF(); int times = raf.readInt(); System.out.println("name:" + name + "\trecord:" + times); } raf.close(); }catch(Exception e){ e.printStackTrace(); } }} 我想实现如下功能,请问用java怎么实现? 很是郁闷的Java字符验证 一个关于socket传文件的问题 字体无法显示的问题?(jbuilder可以,jar运行就不行) 高分求救 "编译没问题 但无法运行" 关于滚屏的问题 给我一个排序的例子! 菜鸟问题4:java怎样调用外部程序? this的用法 java中有没有类似scanf(“%d:::::%d”,&n,&m),自带输入格式的类 怎么样把我写的东西国际化啊? System.out.println();
楼主【xumin51333】截止到2008-07-19 13:52:58的历史汇总数据(不包括此帖):
发帖的总数量:3 发帖的总分数:210 每贴平均分数:70
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:3 结贴的总分数:210
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
public class TestRandomAccessFile{
private File file;
public static void main(String[] args){
TestRandomAccessFile traf = new TestRandomAccessFile();
traf.init();
traf.record("Billy",22);
traf.listAllRecords();
}
public void record(String record_breaker, int times){
try{
RandomAccessFile raf = new RandomAccessFile(file,"rw");
boolean flag = false;
while(raf.getFilePointer() < raf.length()){
String name = raf.readUTF();
if(record_breaker.equals(name)){
raf.writeInt(times);
flag = true;
break;
}else{
raf.skipBytes(4);
}
}
if(!flag){
raf.writeUTF(record_breaker);
raf.writeInt(times);
}
raf.close();
}catch(Exception e){
e.printStackTrace();
}
}
public void init(){
if(file == null){
file = new File("record.txt");
try{
file.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
}
public void listAllRecords(){
try{
RandomAccessFile raf = new RandomAccessFile(file,"r");
while(raf.getFilePointer() < raf.length()){
String name = raf.readUTF();
int times = raf.readInt();
System.out.println("name:" + name + "\trecord:" + times);
}
raf.close();
}catch(Exception e){
e.printStackTrace();
}
}
}