📄 command.java
字号:
import java.io.*;
import java.util.Date;
public class Command
{
int di_addr[]=new int[20];
//int index;
//int toti_num=10;
public Command()
{
di_addr[0]=0;
}
public void ls() throws Exception
{
String line;
String line2;
// System.out.println(SystemInformation.cur_id);
String datafile="datafile/"+SystemInformation.cur_id+".txt";
// System.out.println(datafile);
FileInputStream fil=new FileInputStream(datafile);
BufferedReader br=new BufferedReader(new InputStreamReader(fil));
while((line=br.readLine())!=null)
{
String result[]=line.split(" ");
FileInputStream fis=new FileInputStream("inode.txt");
BufferedReader bufred=new BufferedReader(new InputStreamReader(fis));
while((line2=bufred.readLine())!=null)
{
String result2[]=line2.split(" ");
if(result2[0].equals(result[1]))
{
System.out.print(line2);
}
}
System.out.println(" "+result[0]);
}
}
public void cat(String filename,boolean createnewfile) throws Exception
{
boolean findfile = false;
//显示文件内容
if (!createnewfile)
{
String line;
String line2;
String file_id;
String datafile = "datafile/" + SystemInformation.cur_id + ".txt";
FileInputStream fil = new FileInputStream(datafile);
BufferedReader br = new BufferedReader(new InputStreamReader(fil));
// System.out.println("wo haha");
while ((line = br.readLine()) != null)
{
String result[] = line.split(" ");
if (result[0].equals(filename))
{
// System.out.println("wo haha");
file_id = result[1];
String datafile2 = "datafile/" + file_id + ".txt";
FileInputStream fil2 = new FileInputStream(datafile2);
BufferedReader br2 = new BufferedReader(
new InputStreamReader(fil2));
while ((line2 = br2.readLine()) != null)
{
System.out.println(line2);
findfile = true;
}
}
}
if(findfile==false)
{
System.out.println("没有那个文件");
}
}
//创建新文件
else
{
boolean duplicfile=false;
String dupfileid="";
String datafile_abc="datafile/"+SystemInformation.cur_id+".txt";
BufferedReader br_abc=new BufferedReader(new FileReader(datafile_abc));
String readline_abc=br_abc.readLine();
while((readline_abc=br_abc.readLine())!=null)
{
String newresult[]=readline_abc.split(" ");
if(newresult[0].equals(filename))
{
dupfileid=newresult[1];
duplicfile=true;
break;
}
}
if (duplicfile == false)
{
// 写inode
String new_inode_information = null;
int new_inode_num = -1;
String line;
FileInputStream fil = new FileInputStream("inode.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(
fil));
while ((line = br.readLine()) != null)
{
String result[] = line.split(" ");
// System.out.println(result.length);
if (result.length == 1)
{
Date d=new Date();
//d.toLocaleString();
new_inode_information = result[0] + " " + "-rwxr-xr-x" + " "
+ "rob" + " " + "root" + " " + "30" + " " + "1"
+ " " + d.toLocaleString() + " "
+ d.toLocaleString();
new_inode_num = Integer.parseInt(result[0]);
break;
}
}
LineStrChange.setFileName("inode.txt");
LineStrChange.changeLine(new_inode_information,
new_inode_num + 1);
// 在当前目录附加新文件记录
String newdata = filename + " " + new_inode_num;
String datafile = "datafile/" + SystemInformation.cur_id
+ ".txt";
BufferedReader br3 = new BufferedReader(
new FileReader(datafile));
String readbr3 = br3.readLine();
FileWriter fw = new FileWriter(datafile, true);
BufferedWriter bw = new BufferedWriter(fw);
if (readbr3 != null)
{
bw.newLine();
}
bw.write(newdata);
bw.flush();
fw.close();
br3.close();
// 往新建文件写内容
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br2 = new BufferedReader(isr);
// String inputline = br2.readLine();
String inputline = null;
String datafile2 = "datafile/" + new_inode_num + ".txt";
FileWriter fw2 = new FileWriter(datafile2);
BufferedWriter bw2 = new BufferedWriter(fw2);
while ((inputline = br2.readLine()) != null
&& (!inputline.equals("quit")))
{
// inputline=br2.readLine();
bw2.write(inputline);
bw2.newLine();
}
bw2.write(" ");
bw2.flush();
fw2.close();
}
else
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br2 = new BufferedReader(isr);
// String inputline = br2.readLine();
String inputline = null;
String datafile2 = "datafile/" + dupfileid + ".txt";
FileWriter fw2 = new FileWriter(datafile2);
BufferedWriter bw2 = new BufferedWriter(fw2);
while ((inputline = br2.readLine()) != null
&& (!inputline.equals("quit")))
{
bw2.write(inputline);
bw2.newLine();
}
bw2.write(" ");
bw2.flush();
fw2.close();
}
}
}
public void cd(String cddir) throws Exception
{
boolean finddir=false;
String line;
String datafile="datafile/"+SystemInformation.cur_id+".txt";
FileInputStream fil=new FileInputStream(datafile);
BufferedReader br=new BufferedReader(new InputStreamReader(fil));
while((line=br.readLine())!=null)
{
String result[]=line.split(" ");
if(result[0].equals(cddir))
{
/*tempname=SystemInformation.father_dir;
tempid=SystemInformation.fa_id;
SystemInformation.father_dir=SystemInformation.cur_dir;
SystemInformation.fa_id=SystemInformation.cur_id;*/
SystemInformation.cur_dir=cddir;
int cur_id= Integer.parseInt(result[1]);
SystemInformation.cur_id=cur_id;
SystemInformation.path=SystemInformation.path+"/"+cddir;
String path[]=SystemInformation.path.split("/");
int pathlength=path.length;
di_addr[pathlength-1]=cur_id;
/* System.out.println("path="+SystemInformation.path);
System.out.println("curdir=" +SystemInformation.cur_dir);
System.out.println("id="+SystemInformation.cur_id); */
finddir=true;
}
}
if(cddir.equals(".."))
{
//System.out.println("wohaha");
String path[]=SystemInformation.path.split("/");
int pathlength=path.length;
// System.out.println(i);
SystemInformation.path="root";
int m;
for(m=1;m<pathlength-1;m++)
{
SystemInformation.path=SystemInformation.path+"/"+path[m];
}
SystemInformation.cur_dir=path[m];
SystemInformation.cur_id=di_addr[m-1];
/* System.out.println("path="+SystemInformation.path);
System.out.println("curdir=" +SystemInformation.cur_dir);
System.out.println("id="+SystemInformation.cur_id);*/
finddir=true;
}
if(!finddir)
{
System.out.println("没有那个目录");
//System.out.println(finddir);
}
}
public void pwd()
{
System.out.println(SystemInformation.path);
}
public void mkdir(String dirname) throws IOException
{
// String s = Integer.toString(toti_num);
String new_inode_information=null;
int new_inode_num=-1;
String line;
FileInputStream fil=new FileInputStream("inode.txt");
BufferedReader br=new BufferedReader(new InputStreamReader(fil));
while((line=br.readLine())!=null)
{
String result[]=line.split(" ");
//System.out.println(result.length);
if(result.length==1)
{
Date d=new Date();
//d.toLocaleString();
new_inode_information=result[0]+" "+"drwxr-xr-x"+" "+"rob"+" "+"root"+" "+"30"+" "+
"1"+" "+d.toLocaleString()+" "+d.toLocaleString();
new_inode_num=Integer.parseInt(result[0]);
break;
}
}
LineStrChange.setFileName( "inode.txt" );
LineStrChange.changeLine(new_inode_information,new_inode_num+1);
//write datafile
//String new_i_num = Integer.toString(toti_num);
String newdata=dirname+" "+new_inode_num;
String datafile="datafile/"+SystemInformation.cur_id+".txt";
BufferedReader br2=new BufferedReader(new FileReader(datafile));
String readbr2=br2.readLine();
FileWriter fw=new FileWriter(datafile,true);
BufferedWriter bw=new BufferedWriter(fw);
if(readbr2!=null)
{
bw.newLine();
}
bw.write(newdata);
bw.flush();
fw.close();
br2.close();
//toti_num++;
}
public void rmdir(String dirname) throws IOException
{
String line;
String dir_id=null;
String datafile="datafile/"+SystemInformation.cur_id+".txt";
FileInputStream fil=new FileInputStream(datafile);
BufferedReader br=new BufferedReader(new InputStreamReader(fil));
// System.out.println("wo haha");
int linenum=0;
while((line=br.readLine())!=null)
{
linenum++;
String result[]=line.split(" ");
if(result[0].equals(dirname))
{
//System.out.println("wo haha");
dir_id=result[1];
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -