⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 randomaccessfiledemo.java

📁 留学生信息管理系统 我的工程实习的项目
💻 JAVA
字号:
package test1;
import java.io.*;
import java.util.*;  

class Student {
    private String name; // 固定 15字节    
    private int score; 

   public Student() {
          setName("noname"); 
    } 

   public Student(String name, int score) { 
       setName(name);
       this.score = score;
     }    

  public void setName(String name) {
        StringBuilder builder = null; 
       if(name != null) 
           builder = new StringBuilder(name); 
       else    
           builder = new StringBuilder(15); 
       builder.setLength(15); 
       this.name = builder.toString(); 
   }  

   public void setScore(int score) { 
       this.score = score; 
   }  

   public String getName() { 
        return name;
    }

     public int getScore() {
         return score; 
    } 

     // 每笔记录固定写入34个字节

     public static int size() {  
       return 34; 
    } 
} 




public class RandomAccessFileDemo {
    public static void main(String[] args) {
        Student[] students = {
                new Student("Justin", 90), 
                new Student("momor", 95),  
                new Student("Bush", 88),  
                new Student("caterpillar", 84)
         };  

        try {
            File file = new File("D:\\Tomcat 6.0\\log.txt"); 
           // 建立RandomAccessFile实例並以读写模式打开

       RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");  

        for(int i = 0; i < students.length; i++) { 
              randomAccessFile.writeChars(students[i].getName());
              randomAccessFile.writeInt(students[i].getScore());  
           }    

       Scanner scanner = new Scanner(System.in); 
       System.out.print("读取第几条记录?"); 
       int num = scanner.nextInt(); 
         randomAccessFile.seek((num-1) * Student.size()); 
         Student student = new Student(); 
         student.setName(readName(randomAccessFile)); 
         student.setScore(randomAccessFile.readInt()); 
         System.out.println("姓名:" + student.getName());   
         System.out.println("分数:" + student.getScore());  
         randomAccessFile.close();  
      }catch(ArrayIndexOutOfBoundsException e) { 
           System.out.println("请指定文件名"); 
       }catch(IOException e) {
             e.printStackTrace(); 
        }  
    }  

      private static String readName(RandomAccessFile randomAccessfile) 
                           throws IOException { 
        char[] name = new char[15]; 
        for(int i = 0; i < name.length; i++) 
             name[i] = randomAccessfile.readChar(); 
              return new String(name).replace('\0', ' '); //去掉空白字符
         }
      } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -