标题:看了半天看不出头绪,大家给分析一下
只看楼主
songdeguang
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-4-5
 问题点数:0 回复次数:2 
看了半天看不出头绪,大家给分析一下

import java.io.*;

public class randFile {
final static int DoubelSize=8;
void randomFileTest(String fileName) throws IOException {
RandomAccessFile rf = new
RandomAccessFile(fileName, "rw");
for(int i = 0; i < 10; i++) rf.writeDouble(i*1.0);
rf.seek( 5 * DoubelSize );
rf.writeDouble(98.0001);
rf.close( );
rf = new RandomAccessFile(fileName, "r");
for(int i = 0; i < 10; i++)
System.out.println("Value " + i +
": " + rf.readDouble( ));
rf.close( );
}
public static void main(String args[ ]) {
BufferedReader stdin=new BufferedReader(
new InputStreamReader(System.in));
String fileName=null;
randFile obj=null;
try{ System.out.print("Enter a file name: ");
fileName=stdin.readLine( );
obj=new randFile( );
obj.randomFileTest(fileName);
}catch(IOException e) {
System.out.println("File not found : "+e);
e.printStackTrace( );
}
}
}

运行结果是:
Enter a file name : randfile.txt
Value 0: 0.0
Value 1: 1.0
Value 2: 2.0
Value 3: 3.0
Value 4: 4.0
Value 5: 98.0001
Value 6: 6.0
Value 7: 7.0
Value 8: 8.0
Value 9: 8.0

搜索更多相关主题的帖子: 头绪 int fileName java 
2006-04-14 17:44
伯约
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-4-5
得分:0 
不知道你那看不懂,是不是对写入位置?我觉得搞清楚writeDouble()是写入一个四个字节的双精度浮点型,而你的seek()函数是以字节移动的,把它搞清楚了你就明白是怎么输出的了.你可以在
for(int i = 0; i < 10; i++) rf.writeDouble(i*1.0);
rf.seek( 5 * DoubelSize );
这两句后面分别加上System.out.println(rf.getFilePointer());就可以看出指针移动的情况了.

2006-04-15 08:55
songdeguang
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-4-5
得分:0 

哦太谢谢了


STUDY AND STUDY—JAVA
2006-04-17 10:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-57504-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.510802 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved