📄 myfilesystem.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 + -