(操作系统实验)简单模拟文件系统的基本操作

本文介绍了一个使用Java实现的简易文件系统操作程序,包括用户登录、创建、打开、读取、写入、关闭和删除文件的功能。通过命令行交互,用户可以进行基本的文件管理操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码

//思路:用户登录文件系统,然后创建、打开、读、写、关闭、删除文件

import java.io.*;
import java.util.*;

public class Main{

	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		login();
		menu();
		String[] splits = new String[2];
		while(true){
			splits[0] = scan.next();
			splits[1] =scan.next();
			switch(splits[0]){
				case "create": 
						create(splits[1]);
						break;
				case "open":
						open(splits[1]);
						break;
				case "read":
						open(splits[1]);
						break;
				case "delete":
						delete(splits[1]);
						break;
				case "write":
						write(splits[1]);
						break;
				case "close":
						close(splits[1]);
						break;
			}
		}
				
	}
	
	//登录
	public static void login(){
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入用户名: ");
		String name = scan.next();
		System.out.print("请输入密码:");
		String password = scan.next();
		System.out.println("恭喜,您已经登录文件系统!");
	}
	//菜单
	public static void menu(){
		System.out.println("--------------------------------------------------");
		System.out.println("create 文件名---------------------------创建文件");
		System.out.println("delete 文件名---------------------------删除文件");
		System.out.println("open 文件名----------------------------打开文件");
		System.out.println("write 文件名----------------------------写文件");
		System.out.println("read 文件名-----------------------------读文件");
		System.out.println("close 文件名----------------------------关闭文件");
	}
	//创建文件
	public static void create(String filename){
		try{
			File dir = new File(".",filename);
			dir.createNewFile();
			System.out.println(filename+"已经创建成功!");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	//删除文件
	public static void delete(String filename){
		try{
			File file = new File(filename);
			file.delete();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	//读文件
	public static void open(String filename){
		try{
			File file = new File(filename);
			BufferedReader br = new BufferedReader(new FileReader(file));
			String str = null;
			while((str = br.readLine()) != null){
				System.out.println(str);
			}
			br.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	//写文件
	public static void write(String filename){
		try{
			Scanner scan = new Scanner(System.in);
			File file = new File(filename);
			FileWriter fw = new FileWriter(file);
			String str = scan.next();
			while(!str.equals("#")){
				fw.write(str);
				str = scan.next();
			}
			fw.close();
			System.out.println("写入完毕");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	//关闭文件
	public static void close(String filename){
		System.out.println(filename+"已经关闭!");
	}
}

结果

在这里插入图片描述

实验目的】 1. 了解文件系统的原理; 2. 用高级语言编写调试一个简单文件系统模拟文件管理的工作过程。从而对各种文件操作命令的实质内容执行过程有比较深入的了解。 【实验准备】 1.文件的逻辑结构  顺序文件  索引文件  索引顺序文件  直接文件哈希文件 2.外存分配方式  连续分配  链接分配  索引分配 【实验内容】 1. 实验要求 要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 2. 实验题目  设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。  程序采用二级文件目录(即设置主目录[MFD])用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。  为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 因系统小,文件目录的检索使用了简单的线性搜索。文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。程序中使用的主要设计结构如下:主文件目录用户文件目录( MFD、UFD)打开文件目录( AFD)(即运行文件目录)。 M D F 用户名 文件目录指针 用户名 文件目录指针 U F D 文件名 保护码 文件长度 文件名 A F D 打开文件名 打开保护码 读写指针
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值