【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.hqwc.cn/news/80628.html

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

相关文章

通过C实现sqlite3操作,导入电子词典

#include <stdio.h> #include <string.h> #include <stdlib.h> #include <sqlite3.h> int main(int argc, const char *argv[]) {//创建并打开一个数据库sqlite3 *db NULL;if(sqlite3_open("./dict.db",&db) ! SQLITE_OK){printf("…

Unity之 Vector3 的详细介绍以及方法的介绍

文章目录 总的介绍小试牛刀相关的描述的参数看个小例子 总的介绍 当涉及到Unity中的Vector3类时&#xff0c;以下是一些常用的方法和操作&#xff1a; magnitude 方法&#xff1a;返回向量的长度。 float length vector.magnitude;sqrMagnitude 方法&#xff1a;返回向量的平…

MySQL详细安装与配置

免安装版的Mysql MySQL关是一种关系数据库管理系统&#xff0c;所使用的 SQL 语言是用于访问数据库的最常用的 标准化语言&#xff0c;其特点为体积小、速度快、总体拥有成本低&#xff0c;尤其是开放源码这一特点&#xff0c;在 Web 应用方面 MySQL 是最好的 RDBMS(Relation…

Vue3+Pinia+Koa+Three.js 全栈电商项目总结复盘

前言 前几天一个朋友去义乌旅游&#xff0c;带回来很多小商品&#xff0c;就是一整个物美价廉&#xff0c;但是为什么线下购物和网购有的时候差别这么大&#xff08;网购经常要退换货啊&#x1f62d;&#x1f62d;&#x1f62d;&#xff09;&#xff0c;为此我萌生了一个想法&…

【Java 高阶】一文精通 Spring MVC - 转换器(五)

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

LVS DR模式搭建

目录 一、DR模式概述 一、与NET模式的区别 二、操作命令图 三、搭建流程 一、首先配置三台虚拟机并配置环境&#xff08;关闭防火墙&#xff0c;宽容模式&#xff09; 二、ping通百度 三、在115.3的&#xff08;lvs&#xff09;虚拟机上安装 ipvsadm 四、调整ARP参数 五…

outlook等客户端报错:-ERR Login fail. Please using weixin token to login

使用outlook配置腾讯邮箱后&#xff0c;无法收取邮件&#xff0c;点击接收/发送所有文件夹&#xff0c; 提示报错&#xff1a; 任务“testqq.com - 正在接收”报告了错误(0x800CCC92):“电子邮件服务器拒绝您登录。请在“帐户设置”中验证此帐户的用户名及密码。 响应服务器:…

安装Node(脚手架)

目录 一&#xff0c;安装node&#xff08;脚手架&#xff09;1.1&#xff0c; 配置vue.config.js1.2&#xff0c; vue-cli3x的目录介绍1.3&#xff0c; package.json 最后 一&#xff0c;安装node&#xff08;脚手架&#xff09; 从官网直接下载安装即可&#xff0c;自带npm包管…

内网安全:WMI协议与SMB协议横向移动

目录 网络拓扑图 网络环境说明 WMI协议 SMB协议 域内信息收集 WMI协议 - 横向移动 利用方式一&#xff1a;wmic命令 利用方式一&#xff1a;cscript 利用方式一&#xff1a;impacket SMB协议 - 横向移动 利用方式一&#xff1a;psexec 利用方式二&#xff1a;psexe…

Java在线OJ项目(三)、前后端交互API模块

Java在线OJ项目&#xff08;三&#xff09;、前后端交互API模块 1. 客户端向服务器请求所有题目 或者 单个题目前端获取所有题目获取一个题目 后端 2. 后端读取前端提交的代码&#xff0c;进行编译运行&#xff0c;返回结果前端提交代码后端处理 1. 客户端向服务器请求所有题目…

[bug日志]springboot多模块启动,在yml配置启动端口8081,但还是启动了8080

【问题描述】 配置的启动端口是8081&#xff0c;实际启动端口是8080 【解决方法】 1.检查application.yml的配置是否有错误(配置项中&#xff0c;显示白色就错&#xff0c;橙色无措) 2.检查pom.xml的打包方式配置项配置&#xff0c;主pom.xml中的配置项一般为&#xff1a;&l…

简述docker映射(Mapping)和挂载(Mounting)

映射的概念&#xff1a; 将容器内的端口映射到主机的端口上&#xff0c;这样就可以通过主机的网络接口与容器内部进行通信。主机上对应端口的请求会被转发到容器内部&#xff0c;从而实现对容器内部程序的通信访问&#xff08;注意&#xff01;这里提到的容器内部的端口并不一定…