os.java

来自「这是一个简单的操作系统,主要用文件来模拟磁盘,主要是实现CPU的调度及操作系统的」· Java 代码 · 共 2,762 行 · 第 1/5 页

JAVA
2,762
字号
     	   	  d=0;
     	   	  for(a=0;a<8;a++)
     	   	  {
     	   	  	 c=0;
     	   	  	 sign3=d;
     	   	  	 for(d=0;d<b;d++)
     	   	  	 {
     	   	  	 	if(buff1[d]!=disk[2][sign3])
     	   	  	 	{
     	   	  	 		c=1;
     	   	  	 	}
     	   	  	 	else
     	   	  	 	{sign3++;}     	   	  	 	
     	   	  	 }
     	   	  	 if(c==1)
     	   	  	 {
     	   	  	 	d=a*8+8;
     	   	  	 }
     	   	  	 else
     	   	  	 {
     	   	  	 	sign3=a*8;
     	   	  	 	a=7;
     	   	  	 	d=sign3;
     	   	  	 	sign4=disk[2][d+5];
     	   	  	 	sign5=disk[2][d+6];
     	   	  	 	disk[2][d]=0;
     	   	  	 	disk[2][d+1]=0;
     	   	  	 	disk[2][d+2]=0;
     	   	  	 	disk[2][d+3]=0;
     	   	  	 	disk[2][d+4]=0;
     	   	  	 	disk[2][d+5]=0;
     	   	  	 	disk[2][d+6]=0;
     	   	  	 	disk[2][d+7]=0;
     	   	  	   	
     	   	  	   	if(sign4<=2)
     	   	  	   	{
     	   	  	   	   JOptionPane.showMessageDialog(OS.this,"删除成功!");
     	   	  	   	   break;	
     	   	  	   	}
     	   	  	 	else
     	   	       {
     	   	       	sign6=sign4;
     	   	  	 	sign2=sign5;
     	   	  	 	if(sign6<=63)
     	   	  	 	{
     	   	  	 		for(a=0;a<sign2;a++)
     	   	  	 		{disk[0][sign6]=0;
     	   	  	 		sign6++;}
     	   	  	 	}
     	   	  	 	else
     	   	  	 	{
     	   	  	 		sign6=sign6-64;
     	   	  	 		for(a=0;a<sign2;a++)
     	   	  	 		{disk[0][sign6]=0;
     	   	  	 		sign6++;}
     	   	  	 	}
     	   	       	     	   	  	 	
     	   	  	 	while(note==true)
     	   	  	 	{
     	   	  	 	
     	   	  	 	for(b=0;b<64;b++)
     	   	  	 	{
     	   	  	 		disk[sign4][b]=0;
     	   	  	 	}
     	   	  	 	sign5=sign5-64;
     	   	  	 	if(sign5>0)
     	   	  	 	{
     	   	  	 		note=true;
     	   	  	 	    sign4++;
     	   	  	 	}
     	   	  	 	else
     	   	  	 	{note=false;}
     	   	  	 	}
     	   	  	  }
     	   	  	 	JOptionPane.showMessageDialog(OS.this,"删除成功!");
     	   	  	 	break;
     	   	  	 }    	   	  
     	   	  }
     	   	  if(c==1)
     	   	  {
     	   	  	JOptionPane.showMessageDialog(OS.this,"此文件不存在!");
     	   	  }
     	   }
     	   else
     	   {
     	   sign2=sign-sign1;
     	   for(int i=0;sign2>0;sign2--)
     	   {
     	   	  buff1[i]=buff[sign1];
     	   	  i++;
     	   	  sign1++; 
     	   }
     	   
     	   sign3=2;
     	   sign4=0;
     	   sign5=sign4;
     	   b=0;
     	   for(a=0;a<8;a++)
     	   {
     	   	  for(;buff1[b]==disk[sign3][sign4]&&sign4<sign5+3;sign4++,b++)
     	   	  {     	   	  	
     	   	  }
     	   	  if(sign4==sign5+3)
     	   	  {
     	   	  	a=8;
     	   	  	sign6=disk[sign3][sign5+5];
//     	   	  	disk[sign3][sign5]=0;
//     	   	  	disk[sign3][sign5+1]=0;
//     	   	  	disk[sign3][sign5+2]=0;
//     	   	  	disk[sign3][sign5+3]=0;
//     	   	  	disk[sign3][sign5+4]=0;
//     	   	  	disk[sign3][sign5+5]=0;
//     	   	  	disk[sign3][sign5+6]=0;
//     	   	  	disk[sign3][sign5+7]=0;
     	   	  	sign3=sign6;
     	   	  }
     	   	  sign4=sign5;
     	   	  sign4=sign4+8;
     	   	  sign5=sign4;
     	   	  b=0;	   	  
     	   }
     	   if(a==8)
     	   {
     	   	 JOptionPane.showMessageDialog(OS.this,"此文件不存在!");
     	   }
     	   else
     	  {
     	   c=0;
     	   sign++;
     	   sign1=sign;
     	   for(a=0;buff[sign]!=0&&a<5;sign++,a++)
     	   {
     	   	  buff1[a]=buff[sign];
     	   	  buff1[a+1]=0;
     	   	  if(buff[sign]=='.')
     	   	  {
     	   	  	b=a;
     	   	  	if(b>3)
     	   	  	{b=3;}
     	   	  }
     	   	  else
     	   	  {
     	   	  	  if(buff1[a]!=' ')
     	   	  	  {b++;}
     	   	  }
     	   }   	   
     	   sign4=0;
     	   d=0;
     	   for(a=0;a<8;a++)
     	   {
     	   	     c=0;
     	   	  	 sign6=d;
     	   	  	 for(d=0;d<b;d++)
     	   	  	 {
     	   	  	 	//
     	   	  	 	//System.out.println(d);
     	   	  	 	if(buff1[d]!=disk[sign3][sign6])
     	   	  	 	{
     	   	  	 		c=1;
     	   	  	 		
     	   	  	 	}
     	   	  	 	else
     	   	  	 	{sign6++;}     	   	  	 	
     	   	  	 }
     	   	  	 if(c==1)
     	   	  	 {
     	   	  	 	d=a*8+8;
     	   	  	 }
     	   	  	 else
     	   	  	 {
     	   	  	 	
     	   	  	 	sign6=a*8;
     	   	  	 	d=sign6;
     	   	  	 	sign4=disk[sign3][sign6+5];
     	   	  	 	sign5=disk[sign3][sign6+6];
     	   	  	 	disk[sign3][sign6]=0;
     	   	  	 	disk[sign3][sign6+1]=0;
     	   	  	 	disk[sign3][sign6+2]=0;
     	   	  	 	disk[sign3][sign6+3]=0;
     	   	  	 	disk[sign3][sign6+4]=0;
     	   	  	 	disk[sign3][sign6+5]=0;
     	   	  	 	disk[sign3][sign6+6]=0;
     	   	  	 	disk[sign3][sign6+7]=0;
     	   	  	    if(sign4<=2)	
     	   	  	    {
     	   	  	      JOptionPane.showMessageDialog(OS.this,"删除成功!");
     	   	  	      break;	
     	   	  	    }
     	   	  	 	else
     	   	  	 	{
     	   	  	 	sign6=sign4;
     	   	  	 	sign2=sign5;
     	   	  	 	if(sign6<=63)
     	   	  	 	{
     	   	  	 		for(a=0;a<sign2;a++)
     	   	  	 		{disk[0][sign6]=0;
     	   	  	 		sign6++;}
     	   	  	 	}
     	   	  	 	else
     	   	  	 	{
     	   	  	 		sign6=sign6-64;
     	   	  	 		for(a=0;a<sign2;a++)
     	   	  	 		{disk[0][sign6]=0;
     	   	  	 		sign6++;}
     	   	  	 	}
     	   	  	 	while(note==true)
     	   	  	 	{
     	   	  	 	
     	   	  	 	for(b=0;b<64;b++)
     	   	  	 	{
     	   	  	 		disk[sign4][b]=0;
     	   	  	 	}
     	   	  	 	sign5=sign5-64;
     	   	  	 	if(sign5>0)
     	   	  	 	{
     	   	  	 		note=true;
     	   	  	 	    sign4++;
     	   	  	 	}
     	   	  	 	else
     	   	  	 	{note=false;}
     	   	  	 	}
     	   	  	 	if(sign3>63)
     	   	  	   {
     	   	  		sign3=sign3-64;
     	   	  		disk[1][sign3]=1;
     	   	       }
     	   	  	    else
     	   	  	   {
     	   	  		disk[0][sign3]=1;
     	   	  	   }
     	   	  	 	JOptionPane.showMessageDialog(OS.this,"删除成功!");
     	   	  	 	break;
     	   	       }
     	   	  	 
     	   	  	 }
     	      }
     	   if(a==8)
     	   {
     	   	  JOptionPane.showMessageDialog(OS.this,"文件不存在!");
     	   }    	   
     	   }
     	}
      }
      else
      {
      	JOptionPane.showMessageDialog(OS.this,"路径错误!");
      }
      try
     	{
     	File file1=new File("C:/disk.txt");
     	FileOutputStream input1=new FileOutputStream(file1);
     	DataOutputStream data1=new DataOutputStream(input1);
     	for(a=0;a<128;a++)
     	{
     	   for(b=0;b<64;b++)
     	   {
     	   	 data1.writeChar(disk[a][b]);
     	   }
     	}
     	data1.close();
     	}
     	catch(IOException e)
     	{
     		e.printStackTrace();
     	}
     	ja4.setText("\n");
     	look();
           		
     }
     public void Mkdir(String st)
     {
     	char[][] disk=new char[128][64];
     	char[] buff=new char[30];
     	char[] buff1=new char[5];
     	String string;
     	int sign=0;
     	int sign1=0,sign2,sign3,sign4,sign5;
     	int a,b,c,d;
     	for(c=0;c<5;c++)
     	{
     		buff1[c]=0;
     	}
     	for(c=0;c<30;c++)
     	{
     		buff[c]=0;
     	}
     	buff=st.toCharArray();
     	try
     	{
     	File file=new File("C:/disk.txt");
     	FileInputStream input=new FileInputStream(file);
     	DataInputStream data=new DataInputStream(input);
     	for(a=0;a<128;a++)
     	{
     	   for(b=0;b<64;b++)
     	   {
     	   	 disk[a][b]=data.readChar();
     	   }
     	}
     	data.close();
     	}
     	catch(IOException e)
     	{
     		e.printStackTrace();
     	}
     	
     	if(buff[0]=='\\')
     	{
     	   	for(a=2;a<5;a++)
     	   	{
     	   		if(buff[a]=='\\')
     	   		break;
     	   	}
     	   	System.out.println(disk[2][0]);
     	   	if(a<=4)
     	   	{
     	   		sign=0;
     	   		for(b=0,d=0;b<8;b++)
     	   		{
     	   			for(c=1;c<a;c++,d++)
     	   			{
     	   				if(buff[c]==disk[2][d])
     	   				{
     	   					sign=0;
     	   				}
     	   				else
     	   				{
     	   					sign=1;
     	   					break;
     	   				}
     	   			}
     	   			if(sign==0)
     	   			{
     	   				sign=b*8;
     	   				break;
     	   			}
     	   			else
     	   			{
     	   			   d=b*8;
     	   			}
     	   			
     	   		}
     	   		if(sign==1)
     	   		{
     	   			JOptionPane.showMessageDialog(OS.this,"路径错误!");
     	   		}
     	   		else
     	   		{
     	   			sign=disk[2][sign+5];
     	   			for(b=0,c=0;b<8;b++)
     	   			{
     	   				if(disk[sign][c]==0)
     	   				{
     	   					sign1=c;
     	   					break;
     	   				}
     	   				else
     	   				{
     	   					c=c+8;
     	   				}
     	   			}
     	   			if(b==8)
     	   			{
     	   				JOptionPane.showMessageDialog(OS.this,"目录以满!");
     	   			}
     	   			else
     	   			{
     	   				a++;
     	   				for(d=0;buff[a]!=0&&d<3;d++,a++)
     	   				{
     	   					disk[sign][sign1+d]=buff[a];
     	   				}
     	   				for(a=0;a<2;a++)
     	   				{
     	   					for(b=0;b<64;b++)
     	   					{
     	   						if(disk[a][b]==0)
     	   						{
     	   							disk[a][b]=1;
     	   							if(a==0)
     	   							{
     	   								disk[sign][sign1+5]=(char)b;
     	   							}
     	   							else
     	   							{
     	   								disk[sign][sign1+5]=(char)(b+64);
     	   							}
     	   							a=2;
     	   							break;
     	   						}
     	   					}
     	   				}
     	   				JOptionPane.showMessageDialog(OS.this,"目录创建成功!");
     	   			}
     	   		}
     	   		
     	   		    	   		
     	   	}
     	   	else
     	   	{
     	   		 for(b=0,c=0;b<8;b++)
     	   			{
     	   				if(disk[2][c]==0)
     	   				{
     	   					sign1=c;
     	   					break;
     	   				}
     	   				else
     	   				{
     	   					c=c+8;
     	   				}
     	   			}
     	   			if(b==8)
     	   			{
     	   				JOptionPane.showMessageDialog(OS.this,"目录以满!");
     	   			}
     	   			else
     	   			{
     	   				a=1;
     	   				for(d=0;buff[a]!=0&&d<3;d++,a++)
     	   				{
     	   					disk[2][sign1+d]=buff[a];
     	   				}
     	   				for(a=0;a<2;a++)
     	   				{
     	   					for(b=0;b<64;b++)
     	   					{
     	   						if(disk[a][b]==0)
     	   						{
     	   							disk[a][b]=1;
     	   							if(a==0)
     	   							{
     	   								disk[2][sign1+5]=(char)b;
     	   							}
     	   							else
     	   							{
     	   								disk[2][sign1+5]=(char)(b+64);
     	   							}
     	   							a=2;
     	   							break;
     	   						}
     	   					}
     	   				}
     	   				JOptionPane.showMessageDialog(OS.this,"目录创建成功!");
     	   			}
     	   	}
     	}
        else
        {
      	   JOptionPane.showMessageDialog(OS.this,"路径错误!");
        }
     	
     	
     	
     	
     	
     	
  
  
     	
     	
     	try
     	{
     	File file1=new File("C:/disk.txt");
     	FileOutputStream input1=new FileOutputStream(file1);
     	DataOutputStream data1=new DataOutputStream(input1);
     	for(a=0;a<128;a++)
     	{
     	   for(b=0;b<64;b++)
     	   {
     	   	 data1.writeChar(disk[a][b]);
     	   }
     	}
     	data1.close();
     	}
     	catch(IOException ee)
     	{
     		ee.printStackTrace();
     	}
     	ja4.setText("\n");
     	look();
     }
     public void Edit(String st)
     {
     	char[][] disk=new char[128][64];
     	char[] buff=new char[30];
     	char[] buff1=new char[6];
     	String string,string1;
     	int sign=0;
     	int sign1,sign2,sign3,sign4,sign5,sign6;
     	int a,b,c,d,e,f,g;
     	for(c=0;c<6;c++)
     	{
     		buff1[c]=0;
     	}
     	for(c=0;c<30;c++)
     	{
     		buff[c]=0;
     	}
     	buff=st.toCharArray();
     	
     	try
     	{
     	File file=new File("C:/disk.txt");
     	FileInputStream input=new FileInputStream(file);
     	DataInputStream data=new DataInputStream(input);
     	for(a=0;a<128;a++)
     	{
     	   for(b=0;b<64;b++)
     	   {
     	   	 disk[a][b]=data.readChar();
     	   }
     	}
     	data.close();
     	}
     	catch(IOException ee)
     	{
     		ee.printStackTrace();
     	}
     	if(buff[0]=='\\')
     	{
     	   sign=1;
     	   sign1=sign;
     	   for(;buff[sign]!='\\'&&sign<sign1+4;sign++)
     	   {}
     	   b=0;
     	   if(sign==sign1)
     	   {JOptionPane.showMessageDialog(OS.this,"路径错误!");}
     	   else if(sign>=sign1+4)
     	   {
     	   	  c=0;
     	   	  for(a=0;buff[sign1]!=' '&&a<5;sign1++,a++)
     	   	  {
     	   	  	buff1[a]=buff[sign1];
     	   	  	buff1[a+1]=0;
     	   	  	if(buff1[a]=='.')
     	   	  	{
     	   	  	   b=a;
     	   	  	   c=1;
     	   	  	   if(b>3)
     	   	  	   {b=3;}
     	   	  	}
     	   	  	else
     	   	  	{
     	   	  		if(buff1[a]!=' ')
     	   	  		{	b++;}
     	   	  	}	
     	   	  }
     	   	  sign5=0;
     	   	  sign4=0;
     	   	  d=0;
     	   	  for(a=0;a<8;a++)
     	   	  {

⌨️ 快捷键说明

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