【发布时间】:2012-02-24 13:20:09
【问题描述】:
我用这个函数在特定索引中写了一行:
private void write_line(Student s,int index){
try {
Student_pool.seek(0);
Student_pool.seek(index*(25*Integer.SIZE+4*Character.SIZE));
Student_pool.writeChars(s.getId());
Student_pool.writeChars(s.getHw().substring(0,2));
Student_pool.writeChars(".");
Student_pool.writeChars(s.getHw().substring(3,5));
Student_pool.writeChars(s.getPrj().substring(0,2));
Student_pool.writeChars(".");
Student_pool.writeChars(s.getPrj().substring(3,5));
Student_pool.writeChars(s.getMidtermExam().substring(0,2));
Student_pool.writeChars(".");
Student_pool.writeChars(s.getMidtermExam().substring(3,5));
Student_pool.writeChars(s.getFinalExam().substring(0,2));
Student_pool.writeChars(".");
Student_pool.writeChars(s.getFinalExam().substring(3,5));
Student_pool.writeChars("\n");
Student_pool.getFD().sync();
} catch (IOException ex) {
Logger.getLogger(Storagelmpl.class.getName()).log(Level.SEVERE, null, ex);
}
}
但是当我尝试打开文件时,结果不正确,每个字符后面都有一个空格。 结果如下所示:
8 1 0 1 8 7 3 1 2 2 0 . 0 0 2 0 . 0 0 2 0 . 0 0 2 0 . 0 0
8 1 0 1 8 8 2 7 5 1 6 . 0 0 1 0 . 0 0 1 3 . 0 0 1 9 . 0 0
我认为我的编码存在问题,而我的查找操作数存在另一个问题。 但我不知道如何解决它。
【问题讨论】: