我按照教程上说的,使用RandomAccessFile类,代码都是一样的,为什么我的运行结果却有问题呢,哪位高手帮忙看下,谢谢了
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomFileTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Student s1 = new Student(1, "zhangsan", 98.5);
Student s2 = new Student(2, "lisi", 96.5);
Student s3 = new Student(3, "wangwu", 78.5);
RandomAccessFile raf = new RandomAccessFile("student.txt", "rw");
s1.writeStudent(raf);
s2.writeStudent(raf);
s3.writeStudent(raf);
Student s = new Student();
// 将文件指针设为起始位置
raf.seek(0);
for (long i = 0; i < raf.length(); i=raf.getFilePointer()) {
s.readStudent(raf);
System.out.println("编号"+s.num+"姓名"+s.name+"得分"+s.score);
}
raf.close();
}
}
class Student {
int num;
String name;
double score;
public Student(int num, String name, double score) {
this.num = num;
this.name = name;
this.score = score;
}
public Student() {
}
public void writeStudent(RandomAccessFile raf) throws IOException {
raf.writeInt(num);
raf.writeUTF(name);
raf.writeDouble(score);
}
public void readStudent(RandomAccessFile raf) throws IOException {
raf.readInt();
raf.readUTF();
raf.readDouble();
}
}
我按照你写的方法试了,成功了,可不知道我写的为什么运行不成功,逻辑错误具体错到哪儿了?
《Java面向对象编程》导读-RandomAccessFile类随机读写文件
RandomAccessFile类不同于流类,它提供随机读写文件功能,可从文件任意位置执行操作。RandomAccessFile类实现了DataInput和DataOutput接口,因此能读写格式化数据。它有构造方法如下:构造方法的mode参数指定访问模式,可选“r”表示读,“rw”表示读写。仅读文件应选择“r”,读写文件选“rw”。注意,Rand...
java中RandomAccessFile的使用!?
RandomAccessFile是属于随机读取类,是可以对文件本身的内容直接随机进行操作的,可以在文件的指定位置 的读取和写入内容,这在很多时候都是很方便的。read()是从文件中读取内容,一次只读取一个字节,readByte里面的参数是一个byte数组,一次可以读取这个数组大小的数据。它返回的值就是实际读取了多个字节的...
用randomaccessfile流将一个文本文件倒置读出
public static void main(String args[]) { try { File file = new File("C:\\\\Users\\\\senn\\\\Desktop\\\\作业\\\\test.txt"); RandomAccessFile random = new RandomAccessFile(file, "rw"); long theLength = random.length(); while (theLength > 0) { random.seek(--...
FileChannel的问题,复制粘贴的滚远点
FileChannel的问题,复制粘贴的滚远点 第一次接触这段代码JAVA:FileLockflock=null;RandomAccessFilefis=null;try{fis=newRandomAccessFile("ty.lock","rw");\/\/获得文件通道FileChannellockfc=fis.getChannel();inti=10;wh... 第一次接触这段代码JAVA:FileLock flock = null; RandomAccessFile fis = null; t...
RandomAccessFile 中文件名应怎么写
RandomAccessFile 是一个很有用的类,可以将字节流写入到 磁盘文件中,对应的也可以从磁盘文件中读取出字节流,在 API 中关于 RandomAccessFile 的描述如下:此类的实例支持对随机访问文件的读取和写入。随机访问文 件的行为类似存储在文件系统中的一个大型 byte 数组。存 在指向该隐含数组的光标或索引...
谁能给我举个例子RandomAccessFile类
RandomAccessFile类用处还是很大的,读写文件非常方便,指针又可以任意移动,这里有个写入和读取的例子供你参考,你可以直接拷贝去编译和运行,慢慢体会一下:import java.io.IOException;import java.io.File;import java.io.RandomAccessFile;class RandomFileTest { public static void main(String[] args...
randomaccessfile写文件还是bufferedwrite快
小文件RandomAccessFile,大文件BufferedReader。RandomAccessFile在数据越大,性能越差。因为他是数据文件的一个channel,支持读改原数据文件。BufferedReader提供处理字符编码的方式,使用InputStreamReader或者DataInputStream之类的。
简述RandomAccessFile类的read方法和write方法 使用int类型存储byte数据...
"rws" 和 "rwd" 模式的工作方式极其类似 FileChannel 类的 force(boolean) 方法,分别传递 true 和 false 参数,除非它们始终应用于每个 I\/O 操作,并因此通常更为高效。如果该文件位于本地存储设备上,那么当返回此类的一个方法的调用时,可以保证由该调用对此文件所做的所有更改均被写入该设备。这...
关于RandomAccessFile类
主要的错误是程序的逻辑错误,Student s = new Student(); 这句你new了一个新的学生,这个学生对象的num=0,name=null,score=0.0,你从student.txt文件中读出来的数据并没有赋值给s的各个分量,所以输出结果是:编号0姓名null得分0.0 下面是我的测试代码:--- for (long i = 0; i < raf...
RandomAccessFile类中readInt()方法的返回值问题。
因为你以为的是文本文件,他以为的是二进制,他会读4个字节的数据,然后把他转换为int。在这里,你的数据是1234,作为文本,他们在文件中的表示比如说是ascii码,那么4个字节分别是31H,32H,33H,34H,如果你把十六进制数31323334H转换成十进制,你会发现,他的值就是825373492 ...