问题描述
- 这个实例怎么改才能让其正常运行
-
package IODemo;
/*向文件中写入10个数据,第i个数据=圆周率*i(i=0,1,2,...,9),然后将第二个(i=2)改为
0,最后将10个数据全部输出*/
import java.io.IOException;
import java.io.RandomAccessFile;
public class TestFileRAF {
public static void main(String[] args){
try{
RandomAccessFile f=new RandomAccessFile("TestFileRAF.txt","rw");
int i;
double d;
//写:向文件写入10个数据
for(i=0;i<10;i++){
//f.writeDouble()写入double数据的方法
f.writeDouble(Math.PI*i);
//修改:对文件中第2个double数据改为0
f.seek(16);//文件针往前走16个字节(2个double数据);seek:寻找
f.writeDouble(0);f.seek(0);//文件指针回到文件首部 //读取:将全部数据独处并打印到屏幕中 for(i=0;i<10;i++){ d=f.readDouble(); System.out.println("["+i+"]:"+d); } f.close(); } }catch (IOException e){ System.err.println("发现异常:"+e); e.printStackTrace(); } }
解决方案
f.seek不要使用这个试试
时间: 2024-09-28 23:39:01