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

🧑‍💻作者名称:DaenCode

🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。

😎人生感悟:尝尽人生百味,方知世间冷暖。

📖所属专栏:JavaSE项目



文章目录

🌟系统介绍

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

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

所需知识

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

🌟部分功能运行

重命名文件

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

创建文件

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

删除文件

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

🌟知识一览

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:向文件写入字符数据

🌟写在最后

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


相关推荐
^Lim13 分钟前
esp32 JTAG 串口 bootload升级
java·linux·网络
小林熬夜学编程36 分钟前
【Linux系统编程】第五十弹---构建高效单例模式线程池、详解线程安全与可重入性、解析死锁与避免策略,以及STL与智能指针的线程安全性探究
linux·运维·服务器·c语言·c++·安全·单例模式
玖玖玖 柒染37 分钟前
windows下sqlplus连接到linux oracle不成功
linux·windows·oracle
LuckyTHP38 分钟前
CentOS 9 无法启动急救方法
linux·运维·centos
Bonne journée39 分钟前
centos和ubuntu有什么区别?
linux·ubuntu·centos
vvw&40 分钟前
如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack
linux·运维·nginx·ubuntu·elk·elasticsearch·开源项目
Linux运维老纪42 分钟前
交换机配置从IP(Switch Configuration from IP)
linux·服务器·网络·安全·运维开发·ip
OneSea43 分钟前
Debian源码管理
linux
加载中loading...1 小时前
C/C++实现tcp客户端和服务端的实现(从零开始写自己的高性能服务器)
linux·运维·服务器·c语言·网络
大筒木老辈子1 小时前
Linux笔记---进程:初识进程
linux·服务器·笔记