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

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:JavaSE项目


在这里插入图片描述


文章目录

  • 🌟系统介绍
  • 🌟部分功能运行
    • 重命名文件
    • 创建文件
    • 删除文件
  • 🌟知识一览
    • File类常用API
    • Linux文件系统命令
    • 数组用法
    • IO流基础
  • 🌟写在最后

🌟系统介绍

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

🌟写在最后

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


请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/50464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ajax+Vue+ElementUI

文章目录 1.Ajax1.1 介绍1.2 Ajax快速入门1.3 案例-用户注册时&#xff0c;检测用户名是否数据库已经存在1.4 Axios1.4.1 Axios快速入门1.4.2 请求别名 1.5 JSON1.5.1 Json的基础语法1.5.2 FastJson的使用5.3.2 Fastjson 使用 2. Vue2.1 介绍2.2 Vue快速入门2.3 Vue常用指令和生…

MySQL 数据备份和数据恢复

目录 一、数据备份 1、概述 2、MySQLdump命令备份 1&#xff09;备份单个数据库中的所有表 2) 备份数据中某个或多个表 3) 备份所有数据库 4&#xff09;备份多个库 5) 只备份一个表或多个表结构 二、数据恢复 三、数据备份与恢复应用 一、数据备份 1、概述 数据备…

深度学习基本理论上篇:(MLP/激活函数/softmax/损失函数/梯度/梯度下降/学习率/反向传播)、深度学习面试

深度学习基本理论下篇&#xff1a;&#xff08;梯度下降/卷积/池化/归一化/AlexNet/归一化/Dropout/卷积核&#xff09; 深度学习基本理论下篇&#xff1a;&#xff08;梯度下降/卷积/池化/归一化/AlexNet/归一化/Dropout/卷积核&#xff09;、深度学习面试_会害羞的杨卓越的博…

解决git上传远程仓库时的大文件提交

在git中超过100M的文件会上传失败&#xff0c;而当一个文件超过50M时会给你警告&#xff0c;如下 warning: File XXXXXX is 51.42 MB; this is larger than GitHubs recommended maximum file size of 50.00 MB 解决这种问题&#xff0c;首先在项目的.git文件夹中找到.gitigno…

日撸java_day63-65

文章目录 Booster代码运行截图 Booster 代码 package machineLearning.adaboosting;import weka.core.Instances;import java.io.FileReader; import java.util.Arrays;/*** ClassName: WeightedInstances* Package: machineLearning.adaboosting* Description:Weighted inst…

Vue+Axios搭建二次元动态登录页面(mp4视频格式)

最近想做一个前端登录页面&#xff0c;背景好看的&#xff0c;格式中规中矩的&#xff0c;这么难&#xff1f;我自己创一个吧&#xff01; 效果图如下&#xff1a; 源码可以参考我的github&#xff0c;复制源码即可用&#xff1a;gym02/loginPage_Vue: 使用VueAxios搭建的动态…

五、Spring MVC 接收请求参数以及数据回显、乱码问题

文章目录 一、Spring MVC 接收请求参数二、Spring MVC 数据回显三、SpringMVC 返回中文乱码问题 一、Spring MVC 接收请求参数 客户端或者前端通过 URL 请求传递过来的参数&#xff0c;在控制器中如何接收&#xff1f; 1、当参数和 Controller 中的方法参数一致时&#xff0c;无…

python pipenv环境部署django项目实践

将代码上传到服务器&#xff1a; 安装pipenv&#xff1a; pip3 install pipenv 安装项目虚拟环境&#xff1a; cd /www/wwwroot/python-django pipenv install 如果提示python版本问题&#xff0c;修改Pipfile文件内的python版本即可。 然后进入虚拟环境安装依赖包&#x…

appium2.0+ 单点触控和多点触控新的解决方案

在 appium2.0 之前&#xff0c;在移动端设备上的触屏操作&#xff0c;单手指触屏和多手指触屏分别是由 TouchAction 类&#xff0c;Multiaction 类实现的。 在 appium2.0 之后&#xff0c;这 2 个方法将会被舍弃。 "[Deprecated] TouchAction action is deprecated. Ple…

使用swoole实现实时消息推送给客户端

一. 测试服务端 //测试服务端public function testServer(){$server new Server(192.168.0.144, 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);$server->on(request, function ($request, $response) {$response->header(Content-Type, text/plain);$response->end("He…

Python快速入门体验

Python快速入门体验 一、环境信息1.1 硬件信息1.2 软件信息 二、Conda安装2.1 Conda介绍2.1.1 Conda简介2.1.2 Conda、Anaconda及Miniconda及的关系 2.2 Conda安装包下载2.2.1 Miniconda下载2.2.2 Anconda下载 2.3 Conda安装2.3.1 Miniconda安装2.3.2 Anconda安装 2.4 Conda初始…

【排序】插入排序 希尔排序(改进)

文章目录 插入排序时间复杂度空间复杂度 代码希尔排序时间复杂度空间复杂度 代码 以从小到大排序为例进行说明。 插入排序 插入排序就是从前向后&#xff08;i1开始&#xff09;进行选择&#xff0c;如果找到在i之前&#xff08;分配一个j下标进行寻找&#xff09;有比array[i…

多环境开发

多环境 1、多环境开发&#xff08;YAML版&#xff09; 小结&#xff1a; 多环境开发需要设置若干种常用环境&#xff0c;例如开发、生产、测试环境yaml格式中设置多环境使用—区分环境设置边界每种环境的区别在于加载的配置属性不同启用某种环境时需要指定启动时使用该环境 …

linux————LVS集群

目录 一、集群概述 一、负载均衡技术类型 二、负载均衡实现方式 二、LVS结构 一、三层结构 二、架构对象 三、LVS工作模式 四、负载均衡算法 一、静态负载均衡 二、动态负载 五、ipvsadm命令详解 六、LVS配置 一、基础配置 二、实现NAT模型搭建 配置IP地址 安装…

redis高级----------主从复制

redis的四种模式&#xff1a;单例模式&#xff1b;主从模式&#xff1b;哨兵模式&#xff0c;集群模式 一、主从模式 单例模式虽然操作简单&#xff0c;但是不具备高可用 缺点&#xff1a; 单点的宕机引来的服务的灾难、数据丢失单点服务器内存瓶颈&#xff0c;无法无限纵向扩…

NO.08 MyBatis创建逆向工程

目录 1、前言 2、添加依赖和插件 3、创建MyBatis的核心配置文件 4、创建逆向工程的配置文件 5、执行MBG插件的generate目标 1、前言 工程的创建有正向工程和逆向工程之分。正向工程&#xff1a;先创建Java实体类&#xff0c;由框架负责根据实体类生成数据库表&#xff0c;如…

Windows上安装Hugo的环境

Hugo是一个使用Go编写的静态站点生成器&#xff0c;即网站构建工具。 静态的意思是指在内容在网站上呈现之前需要全部编译成HTML文件。而动态的站点生成器是请求哪个页面就编译生成哪个HTML页面。 在Windows上可以选用包管理器Chocolatey、Scoop、Winget来安装Hugo。 这里我…

Rancher证书更新

一、环境 主机名 IP地址 操作系统 rancher版本 K8s-Master 192.168.10.236 Centos 7 2.5.9 二、更新证书 1、查看当前证书到期时间 2、进行证书轮换 [rootK8s-Master ~]# docker ps |grep rancher/rancher d581da2b7c4e rancher/rancher:v2.5.9 …

CGAL 点云分类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 点云分类一直是点云数据应用的永恒课题,它包含很多,如地面点分类、建筑物分类、植被分类等。CGAL中也为我们提供了一种点云分类的方式,其具体的计算过程如下所述: 首先,使用点云中所携带的一些几何特征来对数据…

小梦C嘎嘎——启航篇】C++STL 中 list日常使用的接口介绍

小梦C嘎嘎——启航篇】CSTL 中 list日常使用的接口介绍&#x1f60e; 前言&#x1f64c;什么是list&#xff1f;常用的函数接口无参的构造函数接口拷贝构造接口赋值运算符重载 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&a…