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

📄 command.java

📁 用java写的unix文件管理模拟系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	   
	   	  //System.out.println("subid="+dir_id);
	  
	   	 LineStrChange.setFileName( "inode.txt" );
	   	 int i = Integer.parseInt(dir_id);
		 LineStrChange.changeLine(dir_id,i+1); //rm inode information
		 LineStrChange.setFileName(datafile);
		 LineStrChange.deleteLine(linenum); //rm datafile information
		 
		 //*****rm all file and directory it contain*************************
		 //******************************************************************
		 String rmfile="datafile/"+dir_id+".txt";
		 FileInputStream rmfil=new FileInputStream(rmfile); 
	   	 BufferedReader rmbr=new BufferedReader(new InputStreamReader(rmfil)); 
	   	// System.out.println("wo haha");
	   	 String rmline;
	   	 String sub_id;
	   	 int rmlinenum=0;
	   	 String rm_id=null;
	   	 
	   	 while((rmline=rmbr.readLine())!=null) 
	   	 {
	   		rmlinenum++;
	   		String result[]=rmline.split(" "); 
	   		sub_id=result[1];
	   		LineStrChange.setFileName( "inode.txt" );
	   		int subi = Integer.parseInt(sub_id);
	   	    LineStrChange.changeLine(sub_id,subi+1);
	   	 
	   	    //System.out.println("subid="+sub_id);
	   
	   	    //String subfile="datafile/"+sub_id+".txt";
	   	    LineStrChange.setFileName(rmfile);
	   	    LineStrChange.deleteLine(1); 
	   	    	   	    
	   	    //LineStrChange.setFileName(datafile);
	   	    //LineStrChange.deleteLine(linenum);
	   	    String subfile="datafile/"+sub_id+".txt";
	   	    FileOutputStream fops=new  FileOutputStream(subfile);   		 	    
	   	 }		 
   }
   
   public void rm(String filename) throws Exception
   {
	     String line;
	     String file_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(filename))
	   	    {
	   		     //System.out.println("wo haha");
	   			 file_id=result[1];
	   			 break;
	   	    }   	    
	   	 }
	   	 LineStrChange.setFileName( "inode.txt" );
	   	 int i = Integer.parseInt(file_id);
		 LineStrChange.changeLine(file_id,i+1); 
		 LineStrChange.setFileName(datafile);
		 LineStrChange.deleteLine(linenum); 
		 //清除对应数据文件的数据
		 String s="datafile/"+file_id+".txt";
		 FileOutputStream fops=new  FileOutputStream(s);
		 
   }
   public void passwd(String username,String newpwd) throws Exception
   {
	     String line;
	     int linenum=0;
	     FileInputStream fil=new FileInputStream("user.txt"); 
	   	 BufferedReader br=new BufferedReader(new InputStreamReader(fil)); 
		 while((line=br.readLine())!=null) 
	   	 {
			linenum++;
	   		String result[]=line.split(" "); 
	   		if(result[0].equals(username))
	   	    {	   			
	   			String changedinformation=result[0]+" "+newpwd+" "+result[2];
	   			LineStrChange.setFileName( "user.txt" );
	   		    LineStrChange.changeLine(changedinformation,linenum); 
	   			
	   	    }   	    
	   	 }
		 System.out.println("用户密码已改!");
   }
   
   public void mv(String filename,String newname) throws Exception
   {
	     String line;
	     int linenum=0;
	     String datafile="datafile/"+SystemInformation.cur_id+".txt";
	     FileInputStream fil=new FileInputStream(datafile); 
	   	 BufferedReader br=new BufferedReader(new InputStreamReader(fil)); 
	   	 while((line=br.readLine())!=null) 
	   	 {
	   	    linenum++;
	   		String result[]=line.split(" "); 
	   		if(result[0].equals(filename))
	   	    {	   			
	   			String changedinformation=newname+" "+result[1];
	   			LineStrChange.setFileName(datafile);
	   		    LineStrChange.changeLine(changedinformation,linenum); 
	   			
	   	    }   	
	   	 }
   }
   public void cp(String file1,String file2) throws Exception
   {
	    String line;
		String file1_id="";
		String file2_id="";
		String datafile = "datafile/" + SystemInformation.cur_id + ".txt";
		FileInputStream fil = new FileInputStream(datafile);
		BufferedReader br = new BufferedReader(new InputStreamReader(fil));
		//find two file id;
		while ((line = br.readLine()) != null) 
		{
			String result[] = line.split(" ");
			if (result[0].equals(file1)) 
			{
				file1_id = result[1];
				
			}
			if (result[0].equals(file2)) 
			{
				file2_id = result[1];
				
			}
		}
		//cp file1 to file2
		String datafile1="datafile/" + file1_id + ".txt";
		String datafile2="datafile/" + file2_id + ".txt";
		String readLen;
		FileInputStream fis = new FileInputStream(datafile1);
		BufferedReader bread = new BufferedReader(new InputStreamReader(fis));
		FileOutputStream fos= new FileOutputStream(datafile2);
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
		while((readLen=bread.readLine())!=null)  
		{   
			 bw.write(readLen);
			 bw.newLine();
	    }   
	    bw.flush();
		bread.close();   
		bw.close();   

		
   }
   public void chmod(String mode,String file) throws Exception
   {
	    String line;
	    String file_id="";
		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(file)) 
			{
				file_id = result[1];			
			}
		}
		br.close();
		
		//System.out.println("fileid is"+file_id);
		
		String line2;
		FileInputStream fil2 = new FileInputStream("inode.txt");
		BufferedReader br2 = new BufferedReader(new InputStreamReader(fil2));
		int linenum=0;
		String changednode="";
		while ((line2 = br2.readLine()) != null) 
		{
			String result[] = line2.split(" ");
			if(result[0].equals(file_id))
			{
				changednode=result[0]+" "+mode+" "+result[2]+" "+result[3]+" "+result[4]+" "+
				result[5]+" "+result[6]+" "+result[7]+" "+result[8]+" "+result[9];
				linenum=Integer.parseInt(result[0]);
			}
		}
		br2.close();
		
		//System.out.println("changednode is"+changednode);
		//System.out.println("linenum is"+linenum);

	    LineStrChange.setFileName("inode.txt");
		LineStrChange.changeLine(changednode,linenum+1);   
   }
   public void chown(String owner,String file) throws Exception
   {
	   String line;
	    String file_id="";
		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(file)) 
			{
				file_id = result[1];			
			}
		}
		br.close();
		
		//System.out.println("fileid is"+file_id);
		
		String line2;
		FileInputStream fil2 = new FileInputStream("inode.txt");
		BufferedReader br2 = new BufferedReader(new InputStreamReader(fil2));
		int linenum=0;
		String changednode="";
		while ((line2 = br2.readLine()) != null) 
		{
			String result[] = line2.split(" ");
			if(result[0].equals(file_id))
			{
				changednode=result[0]+" "+result[1]+" "+owner+" "+result[3]+" "+result[4]+" "+
				result[5]+" "+result[6]+" "+result[7]+" "+result[8]+" "+result[9];
				linenum=Integer.parseInt(result[0]);
			}
		}
		br2.close();
		
		//System.out.println("changednode is"+changednode);
		//System.out.println("linenum is"+linenum);

	    LineStrChange.setFileName("inode.txt");
		LineStrChange.changeLine(changednode,linenum+1);   
   }
   public void chgrp(String group,String file) throws Exception
   {
	   String line;
	    String file_id="";
		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(file)) 
			{
				file_id = result[1];			
			}
		}
		br.close();
		
		//System.out.println("fileid is"+file_id);
		
		String line2;
		FileInputStream fil2 = new FileInputStream("inode.txt");
		BufferedReader br2 = new BufferedReader(new InputStreamReader(fil2));
		int linenum=0;
		String changednode="";
		while ((line2 = br2.readLine()) != null) 
		{
			String result[] = line2.split(" ");
			if(result[0].equals(file_id))
			{
				changednode=result[0]+" "+result[1]+" "+result[2]+" "+group+" "+result[4]+" "+
				result[5]+" "+result[6]+" "+result[7];
				linenum=Integer.parseInt(result[0]);
			}
		}
		br2.close();
		
		//System.out.println("changednode is"+changednode);
		//System.out.println("linenum is"+linenum);

	    LineStrChange.setFileName("inode.txt");
		LineStrChange.changeLine(changednode,linenum+1);   
   }
   public void ln()
   {}
   public boolean login(String username,String password) throws Exception
   {
	   boolean b=false;
	   String line=null;
	   // int i=0,j=0;
	   FileInputStream fil=new FileInputStream(".//user.txt"); 
	   BufferedReader br=new BufferedReader(new InputStreamReader(fil)); 
	  // String [] list=new String=[1024];
	   while((line=br.readLine())!=null) 
	   { 
	      String result[]=line.split(" "); 
	      // System.out.println(result[0]+result[1]);
	      if(result[0].equals(username)&&result[1].equals(password))
	      {
	    	  b=true;
	    	  break;
	      }
	      else
	    	  b=false;
	   } 
	   return b;
   }
   public void logout()
   {
	   System.out.println("系统即将退出,正在保存系统");
   }
  
}

⌨️ 快捷键说明

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