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

📄 myfilesystem.java

📁 用java语言实现的二级文件管理系统 有创建、删除、打开、关闭、读写等功能。
💻 JAVA
字号:

import java.io.*;
import java.util.*;
public class MyFileSystem {

    static String data[][]=new String[10][6];   
    static String userName[]= {"user1","user2","user3","user4","user5","user6","user7","user8","user9","user10"}; 
    static String commond=null;      
    static String file[]=new String[6]; 
    static int emptyNumber=0;
    static int fileNumber=10;
    static BufferedReader input=new 
	BufferedReader(new InputStreamReader(System.in));
    /**
	 * @param args
	 * @throws IOException 
         * @author 尤志强
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
    System.out.println("欢迎使用该文件系统");
    String username1=null;
    String judge=null;
    for(int i=0;i<10;i++)
    	for(int j=0;j<6;j++)
    		data[i][j]="";
    while(true)
    {
    	System.out.println("登陆请输入  login  退出请输入 exit");
    	//BufferedReader input=new 
    	//BufferedReader(new InputStreamReader(System.in));
    	String login=null;
    	login=input.readLine();
    	if(login.trim().equals("login"))
    	{
    		System.out.println("请输入用户名:");
    		username1=input.readLine();
			while(true)
			{
				int i=0;
				for(i=0;i<10;i++)
				{
					if(username1.trim().equals(userName[i]))
					{
						System.out.println("你已经成功登陆了!");
						commandFS(username1.trim());
						break;
					}
				}
				 if(i!=10)
	                break;
	             System.out.println("不存在该用户!请重新确认输入!");
	             username1=input.readLine();
			}
    	}
    	else if(login.trim().equals("exit"))
    	{
    		System.out.println("谢谢您的合作");
    		return;
    	}
    }
  }
   public static void commandFS(String username)throws IOException
   {
	   String choice=null;
	   //BufferedReader input=new 
   	   //BufferedReader(new InputStreamReader(System.in));
	   while(true)
	   {
		   System.out.println("\t\t1.列出所有文件");
		   System.out.println("\t\t2.创建文件");
		   System.out.println("\t\t3.删除文件");
		   System.out.println("\t\t4.打开文件");
		   System.out.println("\t\t5.关闭文件");
		   System.out.println("\t\t6.读文件");
		   System.out.println("\t\t7.写文件");
		   System.out.println("\t\t8.退出");
		   System.out.println("\t\t请选择1--8进行操作");
		   choice=input.readLine();
           switch(Integer.parseInt(choice))
           {
           case 1: listAllFiles(username);
                   break;
           case 2: createFile(username);
                   break;
           case 3: deleteFile(username); break;
           case 4: openFile(username);break;
           case 5:closeFile(username);break;
           case 6:readFile(username);break;
           case 7:writeFile(username);break;
           case 8:return;
           default:
        	   System.out.println("您的输入不正确,请重新输入!");
               choice=input.readLine();
           }
	   }
   }
   static void listAllFiles(String username)
   {
	   int m=0;   
       System.out.println("文件名"+"\t"+"用户名"+"\t"+"文件长度"+"\t"+"只读1/可写2"+"\t"+"打开控制");   
       for(int i=0;i<10;i++)   
            {   
               if(data[i][1].equals(username))   
               {      
                      
                  for(int j=0;j<5;j++)   
                   {      
                	  System.out.print(data[i][j]+"\t");   
                        if(j==4)    
                       System.out.println();   
                          
                   }m++;   
               }   
             }   
            if(m==0)   
            {   
               System.out.println("没有目录项");    
            }   
          else {
        	  System.out.println("\n");
        	  System.out.println("文件个数"+m); 
          }
   }
   static void createFile(String username)throws IOException
   {
	   //BufferedReader input=new 
   	   //BufferedReader(new InputStreamReader(System.in));
	   if(emptyNumber!=10)
	   {
		   while(true)
		   {
			   System.out.println("请输入文件名");
			   file[0]=input.readLine().trim();
			   file[1]=username;
			   for(int i=0;i<10;i++)
			   {
				   if(file[0].equals(data[i][0])&&file[1].equals(data[i][1]))
				   {
					   System.out.println("文件名冲突,请重新输入");
					   file[0]=input.readLine().trim();
				   }
			   }
			   System.out.println("您已经成功创建该文件");
			   file[4]="open";
			   while(true)   
	           {   System.out.println("请设置读写属性 1.只读 2.可读写");    
	               commond=input.readLine();   
	               if(commond.equals("1")||commond.equals("2"))   
	               {   
	               file[3]=commond.trim();   
	               break;   
	               }   
	           }
			   System.out.println("文件"+file[0]+"已经打开");   
	           System.out.println(" 请输入文件初始数据");   
	           file[5]=input.readLine().trim();   
	           file[2]=String.valueOf(file[5].length());
	           for(int j=0;j<6;j++)   
	           {   
	                
	             data[emptyNumber][j]=file[j];   
	                
	           }   
	         file[5]="close";   
	         data[emptyNumber][4]="close";   
	         System.out.println("文件"+file[0]+"已经关闭");   
	         fileNumber--; 
	         emptyNumber++;
	         break;
		   }
	   }
	   else
		   System.out.println("该用户创建的文件已到10个,不能在创建!");

   }
   static void deleteFile(String username) throws IOException
   {
	   System.out.println("请输入要删除的文件名");
	   file[0]=input.readLine().trim();
	   file[1]=username;
	   int i=0;
	   for(i=0;i<10;i++)
	   {
		   if(data[i][0].equals(file[0])&&data[i][1].equals(file[1]))
		   {
			   System.out.println("确定删除?yes/no");
			   commond=input.readLine().trim();
			   while(true)
				   {
					   if(commond.trim().equals("yes"))   
	                   {     
	                    for(int j=0;j<6;j++)   
                        {     
                           file[j]="";   
                           data[i][j]="";   
                
                        }   
	                   System.out.println("该文件已经成功删除");
	                   emptyNumber++;
	                   fileNumber--;
	                   break;          
	                           
	                   }   
	                   else if(commond.trim().equals("no"))   
	                   {   
	                	   System.out.println("该文件没有被删除");
	                	   break;   
	                   }   
					 commond=input.readLine().trim(); 
	               }
			   break;
			   }
		   }
	   if(i==10)
		   System.out.println("您输入的文件不存在");
	   }
   static void openFile(String username) throws IOException
   {
	   System.out.println("请输入要打开的文件名");
	   file[0]=input.readLine().trim();
	   int i=0;
	   for(i=0;i<10;i++)
	   {
		   if(data[i][4].equals("open")&&data[i][0].equals(file[0]))
		   {
			   System.out.println("文件"+file[0]+"已经在内存中打开,请先关闭");
			   break;
		   }
		   else if(data[i][0].equals(file[0])&&data[i][1].equals(username))
		   {
			  
			   for(int j=0;j<5;j++)
			   {
				   file[j]=data[i][j];
			   }
			   file[4]="open";
			   data[i][4]="open";
			   System.out.println("文件"+file[0]+"已经打开");
			   break;
		   }
		   else if(i==9)
		   {
			   System.out.println("文件名不存在");
			   break;
		   }
	   }
   }
   static void closeFile(String username) throws IOException
   {
	   System.out.println("请输入要关闭的文件名");
	   file[0]=input.readLine().trim();
	   int i=0;
	   for(i=0;i<10;i++)
	   {
		   if(data[i][4].equals("open"))
		   {
			   System.out.println("文件"+file[0]+"已经在内存中处于关闭状态,不需要在进行关闭了");
			   break;
		   }
		   else if(data[i][0].equals(file[0])&&data[i][1].equals(username))
		   {
			   /*
			   for(int j=0;j<5;j++)
			   {
				   file[j]=data[i][j];
			   }
			   file[4]="open";
			   */
			   data[i][4]="close";
			   System.out.println("文件"+file[0]+"已经关闭");
			   break;
		   }
		   else if(i==9)
		   {
			   System.out.println("文件名不存在");
			   break;
		   }
	   }
   }
   static void readFile(String username) throws IOException
   {
	   System.out.println("请输入要读入的文件名");
	   file[0]=input.readLine().trim();
	   for(int i=0;i<10;i++)
	   {
		   if(data[i][0].equals(file[0])&&data[i][1].equals(username))
		   {
			   for(int j=0;j<6;j++)
			   {
				   file[j]=data[i][j];
			   }
			   if(file[4].equals("close"))
			   {
				   System.out.println("文件没有打开! ");   
                   break;   
			   }
			   else  if(file[4].equals("open"))   
               {                    
				   System.out.println(file[5]);   
				   break;   
               }   
		   }
	   }
   }
   static void writeFile(String username) throws IOException
   {
	   System.out.println("请输入要读写的文件");
	   file[0]=input.readLine().trim();
	   String changeString="";
	   for(int i=0;i<10;i++)
	   {
		   if(data[i][0].equals(file[0])&&data[i][1].equals(username))
		   {
			   for(int j=0;j<6;j++)
			   {
				  file[j]=data[i][j]; 
			   }
			   if(file[4].equals("close"))
			   {
				   System.out.println("文件没有打开!");
				   break;
			   }
			   else if(file[4].equals("open"))
			   {
				   if(file[3].equals("1"))
				   {
					   System.out.println("只读文件,不能修改");
					   break;
				   }
				   else
				   {
					   System.out.println("请输入修改数据");
					   changeString=input.readLine().trim();
					   while(true)
					   {
						   System.out.println("修改选择     1.覆盖    2.追加");
						   commond=input.readLine().trim();
						   if(commond.equals("1"))
						   {
							   file[5]=changeString;
							   file[2]=String.valueOf(file[5].length());
							   break;
						   }
						   if(commond.equals("2"))
						   {
							   file[5]+=changeString;
							   file[2]=String.valueOf(file[5].length());
							   break;
						   }
						   else continue;
					   }
					   System.out.println("修改后的数据:");
					   System.out.println(file[5]);
					   //将修改后的数据存入到内存中
					   data[i][5]=file[5];
					   data[i][2]=file[2];
					  
				   }
			   }
		   }
	   }
   }
}

⌨️ 快捷键说明

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