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

📄 randomfiletest.java

📁 这是清华大学编写的JAVA教材中所有题目的源代码!
💻 JAVA
字号:
import java.io.*;

class Student
{
	String name;
	int age;
	final static int LEN=8;
	
	public Student(String name,int age)
	{
		
		if(name.length()>LEN)
			name=name.substring(0,8);//姓名多于8个字符则截掉
		else
		{
			while(name.length()<LEN)//姓名少于8个字符则补空格
				name=name+" ";
		}
		/*
		
		byte[] b1=name.getBytes();
		byte[] b2=new byte[LEN];
		
		if(b1.length>LEN)
			System.arraycopy(b1,0,b2,0,LEN);
		else
		{
			System.arraycopy(b1,0,b2,0,b1.length);
			for(int i=b1.length;i<LEN;i++)
				b2[i]=(byte)32;//空格的ASCII码
		}
		name=new String(b2);
		*/
		this.name=name;
		this.age=age;
	}
}

public class RandomFileTest
{
  	public static void main(String args[])
  	{/*
	    Student s1=new Student("mary",18);
	    Student s2=new Student("abcdefgh",20);
	    Student s3=new Student("tomcruise",24);
		*/
			 
	    Student s1=new Student("姚明",18);
	    Student s2=new Student("奥尼尔",20);
	    Student s3=new Student("科比布莱恩特",24);
	    
	    try
	    {
		    RandomAccessFile raf=new RandomAccessFile("student.txt","rw");
		    raf.write(s1.name.getBytes());
		    raf.writeInt(s1.age);
		    raf.write(s2.name.getBytes());
		    raf.writeInt(s2.age);
		    raf.write(s3.name.getBytes());
		    raf.writeInt(s3.age);
		    raf.close();
		    
		    raf=new RandomAccessFile("student.txt","r");
		    int len=8;
	
		    raf.skipBytes(12);//跳过第一个学生的信息,其中姓名8字节,年龄4字节
		    System.out.println("第二个学生的信息:");
			/*
		    String str="";
		    for(int i=0;i<len;i++)
		    	str=str+(char)raf.readByte();
		    */
		    
		    byte[] b=new byte[len];
		    for(int i=0;i<len;i++)
		    	b[i]=raf.readByte();
		    String str=new String(b);
			
		    System.out.println("姓名:"+str.trim());//丢掉多于空格
		    int age=raf.readInt();
		    System.out.println("年龄:"+age);
	
		    raf.seek(0);//将指针移到文件开始位置
		    System.out.println("第一个学生的信息:");
		    /*
		    str="";
		    for(int i=0;i<len;i++)
		    	str=str+(char)raf.readByte();
		    */
		    
		    b=new byte[len];
		    for(int i=0;i<len;i++)
		    	b[i]=raf.readByte();
		    str=new String(b);
			
		    System.out.println("姓名:"+str.trim());
		    age=raf.readInt();
		    System.out.println("年龄:"+age);
	
			raf.skipBytes(12);//跳过第二个学生的信息
			System.out.println("第三个学生的信息:");
		    /*
		    str="";
		    for(int i=0;i<len;i++)
		    	str=str+(char)raf.readByte();
		    */
		    
		    b=new byte[len];
		    for(int i=0;i<len;i++)
		    	b[i]=raf.readByte();
		    str=new String(b);
			
		    System.out.println("姓名:"+str.trim());
		    age=raf.readInt();
		    System.out.println("年龄:"+age);
			
			raf.close();
		}
		catch(Exception e)
	    {
	      System.out.println(e.getMessage());
	    }	
	}
}

⌨️ 快捷键说明

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