📄 myfilesystem.java
字号:
import java.util.*;
import java.io.*;
public class MyFileSystem
{ static String data[][]=new String[100][7];
static String userName[]= {"","","","","","","","","",""};
public static void main(String argv[]) throws IOException
{ System.out.println("欢迎使用该文件系统");
int nameFlag=0;
String username1=null;
String judge=null;
int nameNumber;
//write("d:\\FileDisk.txt");
readname("d:\\UserName.txt");
while(true)
{
System.out.println("登录请输入 login 退出请输入 exit");
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
String login=null;
login=input.readLine();
if(login.trim().equals("login"))
{
System.out.println("input user name:");
username1=input.readLine();
while(true)
{ int flag=0;
for(flag=0;flag<10;flag++)
{if(username1.trim().equals(userName[flag]))
{
System.out.println("你已经登录");
commondFS(username1.trim());
break;
}
}
if(flag!=10)
break;
System.out.println("不存在的用户名");
System.out.println("是否注册?yes进入 任意键退出");
judge=input.readLine();
if(judge.trim().equals("yes"))
{
userName[nameFlag]=username1.trim();
for(int i=0;i<10;i++)
System.out.println(userName[i]);
System.out.println("你已经登录");
writename("d:\\UserName.txt");
commondFS(username1.trim());
nameFlag++;
break;
}
else {
//System.out.println("谢谢支持!");
//return;
break;
}
}
}
else if(login.trim().equals("exit"))
{ System.out.println("谢谢支持!");
return;
}
}//end of first while
}//end of main
//////////////////////////////////////
public static void commondFS(String username)throws IOException
{
String commond=null;
String cmd[]=new String[3];
String file[]=new String[7];
int fileNumber=0,getNumber=0,emptyNumber=0;
read("d:\\FileDisk.txt");
while(true)
{ System.out.print(username+":->");
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
commond=input.readLine();
StringTokenizer parser=new StringTokenizer(commond," ");
int s=0;
while(parser.hasMoreTokens())
{ cmd[s]=parser.nextToken();
s++;
}
if(cmd[0].trim().equals("dir"))
{ int m=0;
System.out.println("文件名 用户名 地址 文件长度 只读1/可写2 打开控制");
for(int i=0;i<100;i++)
{
if(data[i][1].equals(username))
{
for(int j=0;j<6;j++)
{
System.out.print(" "+data[i][j]+" ");
if(j==5)
System.out.println();
}m++;
}
}
if(m==0)
{
System.out.println("没有目录项");
}
else System.out.println("文件个数"+m);
}
else if(cmd[0].trim().equals("create"))
{
int f;
for(f=0;f<100;f++)
{
if(data[f][5].equals("open"))
{ System.out.println("有文件在内存中,请先关闭");
break;
}
}
if(f==100)
{
int k;
for(k=0;k<100;k++)
{ if(data[k][5].equals("close"))
{
continue;
}
else { emptyNumber=k;
break;
}
}
System.out.println("请输入文件名");
file[0]=input.readLine().trim();
file[1]=username;
for(int m=0;m<100;m++)
{
if(file[0].equals(data[m][0]))
if(file[1].equals(data[m][1]))
{ System.out.println("文件名冲突,请重命名");
file[0]=input.readLine().trim();
}
}
file[2]="address"+String.valueOf(emptyNumber); //physical address
file[5]="open"; //open contral
while(true)
{ System.out.println("请设置读写属性 1.只读 2.可读写");
commond=input.readLine();
if(commond.equals("1")||commond.equals("2"))
{
file[4]=commond.trim();
break;
}
}
System.out.println("文件"+file[0]+"已经打开");
System.out.println(" 请输入文件初始数据");
file[6]=input.readLine().trim();
file[3]=String.valueOf(file[6].length());
for(int j=0;j<7;j++)
{
data[emptyNumber][j]=file[j];
}
file[5]="close";
data[emptyNumber][5]="close";
System.out.println("文件"+file[0]+"已经关闭");
fileNumber++;
}
}
else if(cmd[0].trim().equals("delete"))
{
for(int i=0;i<100;i++)
{ if(data[i][0].equals(cmd[1]))
{if(data[i][1].equals(username))
{
System.out.println("确定删除?yes/no");
commond=input.readLine();
while(true)
{
if(commond.trim().equals("yes"))
{
for(int j=0;j<7;j++)
{
file[j]="";
data[i][j]="";
}
System.out.println("文件"+cmd[1]+"已经删除");
break;
}
else if(commond.trim().equals("no"))
{
break;
}
}//end of while
break;
}//end of if username
}
else
{ if(i==99)
{
System.out.println("你无权删除该文件");
break;
}
}
}//end of for
}//end of if delete
else if(cmd[0].trim().equals("open"))
{
for(int i=0;i<100;i++)
{ if(data[i][5].equals("open"))
{ System.out.println("有文件"+file[0]+"在内存中,请先关闭");
break;
}
else
{
if(data[i][0].equals(cmd[1]))
{
if(username.equals(data[i][1]))
{
getNumber=i;
for(int n=0;n<7;n++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -