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

📄 systemtab.java

📁 (文件数据库系统)功能强大,很有价值的代码.
💻 JAVA
字号:
import java.io.*;

public class SystemTab{
	Header table;
	RandomAccessFile file;
	int row;
	SystemTab()
	{
	try{	File filename=new File("SystemTab.txt");	 	
	 	filename.createNewFile();
	 	 file=new RandomAccessFile(filename,"rw");}
	 	 catch(IOException e)
	 	 {
	 	 	System.err.println("in Sys");
	 	 }
	 	
	 }
	 
	void  add(Header h) 
	 {try{file.seek(file.length());System.out.println(file.length());
	file.writeInt(h.count);           //count,delete,name,key,keytype,att
	 		 	file.writeBoolean(h.delete);	 		
	 		 	 writeStr(file,h.name);

	 	writeStr(file,h.key);
	 	writeStr(file,h.keyType);
	 	for(int i=0;i<2*(h.count-1);i++)
	 	writeStr(file,h.attri[i]);
	 	table=h;
	 	row++;}
	 	catch(IOException e)
	 	{System.err.println("in add");
	 	}
	 	
	 }
	 	private void writeStr(RandomAccessFile file,String str) 
	{
		try{
		StringBuffer buffer=null;
		if(str!=null)
		buffer=new StringBuffer(str);
		else
		buffer=new StringBuffer(15);
		
		buffer.setLength(15);
		file.writeChars(buffer.toString());}
		catch(IOException e)
		{
			System.err.println("in writeStr");
	}
}	
	Header  read()        //count,delete,name,key,attri
	{
		Header h=new Header();               //32,8,(count+1)*16
		try{
		int count=file.readInt();
		boolean de=file.readBoolean();
		if(de)h.delete();
		char ch[]=new char[15],temp;
		for(int i=0;i<ch.length;i++)
		{
		temp=file.readChar();
		ch[i]=temp;}
		h.setName(new String(ch).replace('\0',' '));
		h.setCount(count);
	for(int i=0;i<ch.length;i++)
		{
		temp=file.readChar();
		ch[i]=temp;}
	
		h.setKey(new String(ch).replace('\0',' '));
			for(int i=0;i<ch.length;i++)
		{
		temp=file.readChar();
		ch[i]=temp;}
		h.setType(new String(ch).replace('\0',' '));

	
		String as[]=new String[2*(count-1)];
		
		for(int j=0;j<2*(count-1);j++){
			for(int i=0;i<ch.length;i++)
		{
		temp=file.readChar();
		ch[i]=temp;
         }
       	as[j]=new String(ch).replace('\0',' ');
       }
       h.setAttri(as);
      }
        catch(IOException e)
      {System.err.println("in systeb read");}
             
             return h;

      }
     
           
          
      Header getH(int pos)
      {
      	try{	file.seek(pos);
      	 }catch(IOException e)
      {}
      
      	Header h=read();
      	return h;
      
     
    }
      	
      	
      int  Search(String na)
      {
      	int i=0;
      	try{      	


      	while(true)
      	{
      		      		      	file.seek(i);

      		
      		int j=file.readInt();
      		char ch[]=new char[15],temp;
      		if(!file.readBoolean())
      		
		for(int k=0;k<ch.length;k++)
		{
		temp=file.readChar();
		ch[k]=temp;
	}
		if(new String(ch).trim().equals(na))
	break;
	
		i+=5+(j)*30*2+30;
		
		
      		
      	}
      }
      catch(EOFException e){
      	return -1;
      }
      catch(IOException ex)
      {}
     return i;
      
      }
      
      boolean  Drop(String na)
      {
      	int i=Search(na);
      	if(i==-1) return false;try{
      	file.seek(i);
      	file.writeInt(0);
      	file.writeBoolean(true);return true;
      }
      catch(IOException e)
      {
      	System.err.println("in drop");      	return false;

      }
      
      
      }
      
    }


	
		
		
			
	

	
	


⌨️ 快捷键说明

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