【InsCode】InsCode打造的JavaSE与Linux命令互融的伪Linux文件系统小项目

简介: 【InsCode】InsCode打造的JavaSE与Linux命令互融的伪Linux文件系统小项目

🌟系统介绍


体验地址:JavaSE基础夯实之伪Linux文件系统

实现功能:


  • 创建目录
  • 删除目录
  • 切换目录
  • 获取路径下目录及文件列表
  • 创建文件
  • 删除文件
  • 获取当前路径
  • 文件重命名


所需知识:


  • File类常用API的用法
  • 异常捕获
  • 条件控制
  • 数组知识
  • 循环知识
  • IO流知识
  • Linux中的cd、mkdir、rm、touch、ls、pwd等等简单文件操作命令。


🌟部分功能运行


重命名文件

通过Linux命令的mv命令对当前new.txt重命名为daen.txt。

774880ffe289ba8214b7c3301d720c83_b352cba7eb2c4259bd116c9b18d44797.png


创建文件

通过linux中的touch命令创建test.txt。

8653f77c0058b0f4d0125e3c87af1963_53bacd80a97c47cbb6bcb5c61effbc7c.png


删除文件

通过rm命令删除test.txt文件。

1d54718eb67490144cf7c9714fde8f6b_bdf87103e9bb4ac8ad4c71e927c61657.png


🌟知识一览


File类常用API


API 描述
File(String pathname) 通过给定的路径名字符串创建File对象。
File(File parent, String child) 创建File对象,表示指定父目录和指定子目录下的文件或目录。
exists() 测试文件或目录是否存在。
isDirectory() 测试文件是否为目录。
mkdir() 创建此抽象路径名指定的目录。
createNewFile() 当指定抽象路径名表示的文件不存在时,创建一个新的空文件。
delete() 删除此抽象路径名表示的文件或目录。
listFiles() 返回目录下的所有文件和子目录的文件数组。
getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
getCanonicalPath() 返回此抽象路径名的规范路径名字符串。
getName() 返回此抽象路径名表示的文件或目录的名称。
getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
lastModified() 返回文件或目录最后一次被修改的时间,以毫秒表示。
length() 返回此抽象路径名表示的文件的长度(以字节为单位)。注意,如果此路径名表示的文件是一个目录,那么此方法返回值为0。
renameTo(File dest) 将此抽象路径名重命名为指定的路径名。
isFile() 测试此抽象路径名表示的文件是否是一个标准文件。


Linux文件系统命令


命令 描述 用法
ls 列出目录内容 ls [选项] [文件/目录]
cd 切换目录 cd [目录路径]
pwd 显示当前工作目录 pwd
mkdir 创建新目录 mkdir [目录名]
rmdir 删除空目录 rmdir [目录名]
cp 复制文件或目录 cp [选项] [源文件/目录] [目标文件/目录]
mv 移动文件或目录,或者重命名 mv [选项] [源文件/目录] [目标文件/目录]
rm 删除文件或目录 rm [选项] [文件/目录]
touch 创建空文件或更新文件时间戳 touch [文件]
cat 查看文件内容 cat [文件]
less 逐页查看文件内容 less [文件]
head 显示文件开头部分 head [选项] [文件]
tail 显示文件结尾部分 tail [选项] [文件]
ln 创建链接 ln [选项] [源文件] [链接文件]
find 在文件系统中搜索文件 find [路径] [选项] [表达式]
grep 在文件中搜索匹配的文本 grep [选项] [模式] [文件]
chmod 修改文件或目录的权限 chmod [选项] [权限] [文件/目录]
chown 修改文件或目录的所有者 chown [选项] [所有者] [文件/目录]
chgrp 修改文件或目录的所属组 chgrp [选项] [组] [文件/目录]
tar 打包和解压文件 tar [选项] [文件/目录]
gzip 压缩文件 gzip [选项] [文件]
unzip 解压缩文件 unzip [选项] [文件]


数组用法


操作 描述 示例
声明数组 声明一个数组变量 int[] numbers;
创建数组 使用 new 关键字创建实际的数组对象 numbers = new int[5];
初始化数组 在创建数组时直接初始化数组元素的值 int[] numbers = {1, 2, 3, 4, 5};
访问数组元素 使用索引访问数组中的元素 int thirdNumber = numbers[2];
修改数组元素 通过索引修改数组中的元素值 numbers[3] = 10;
获取数组长度 使用 length 属性获取数组的长度 int length = numbers.length;
遍历数组 使用循环结构遍历数组中的所有元素 for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); }


IO流基础


IO流类型 描述 示例
字节流 操作字节数据的IO流类型

- InputStream:用于从输入源读取字节数据

- OutputStream:用于向输出目标写入字节数据

- FileInputStream:从文件读取字节数据

- FileOutputStream:向文件写入字节数据

- BufferedInputStream:对其他字节流提供缓冲功能


字符流 操作字符数据的IO流类型

- Reader:用于从输入源读取字符数据

- Writer:用于向输出目标写入字符数据

- FileReader:从文件读取字符数据

- FileWriter:向文件写入字符数据

- BufferedReader:对其他字符流提供缓冲功能

- BufferedWriter:对其他字符流提供缓冲功能


缓冲流 提供缓冲功能,可以提高IO性能 - BufferedInputStream:对其他字节流提供缓冲功能
- BufferedOutputStream:对其他字节流提供缓冲功能
- BufferedReader:对其他字符流提供缓冲功能
- BufferedWriter:对其他字符流提供缓冲功能
对象流 序列化和反序列化Java对象的IO流类型 - ObjectInputStream:读取序列化对象
- ObjectOutputStream:写入序列化对象
转换流 在字节流和字符流之间进行转换 - InputStreamReader:将字节流转换为字符流
- OutputStreamWriter:将字符流转换为字节流
文件操作流 用于操作文件的IO流类型,如创建、删除、重命名等操作 - FileInputStream:从文件读取字节数据
- FileOutputStream:向文件写入字节数据
- FileReader:从文件读取字符数据
- FileWriter:向文件写入字符数据


🌟写在最后


最后感谢大家的阅读,对于小案例所需知识现在还没有系统的给大家整理,大家可以去网上找找相关资料。此外,也很乐意大家基于此案例完善更多的功能。有想法的可以在评论区讨论哦!


目录
相关文章
|
17天前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
80 20
|
23天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
72 15
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
84 14
Linux 10 个“who”命令示例
|
1月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
166 20
|
28天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
81 8
|
28天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
176 7
|
28天前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
47 7
|
1月前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
80 7
|
1月前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
53 9

热门文章

最新文章