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 + -
显示快捷键?