小滴课堂-学习笔记:(10) Java进阶核心之File文件和目录

手把手复现金蝶云星空V8.1文件上传漏洞(附完整POC与修复方案) 本文深度解析金蝶云星空V8.1文件上传漏洞,提供详细的漏洞复现步骤与完整POC,涵盖技术原理、测试环境搭建及验证流程。同时给出多维防护方案,包括官方补丁部署、临时缓解措施和长期安全加固建议,帮助企业有效防范任意文件上传风险。 阅读详情

logo 愿景:"让编程不再难学,让技术与生活更加有趣"


更多架构课程请访问 xdclass.net

第1集 计算机文件和路径介绍

简介:介绍计算机文件知识和路径目录

  • 什么是计算机文件(File)

    • 以计算机硬盘为载体存储在计算机上的信息集合,可以是文本、图片、视频、程序等,文件一般有拓展名,表示文件的类型

  • 文件目录 (Directory)

    • 就是我们一般称呼的文件夹,为了便于对文件进行存取和管理

    • 文件目录是由文件目录项组成的。文件目录分为一级目录、二级目录和多级目录。多级目录结构也称为树形结构,在多级目录结构中,每一个磁盘有一个根目录,在根目录中可以包含若干子目录和文件,在子目录中不但可以包含文件,而且还可以包含下一级子目录

    • 掌握了基础后的可以去了解Linux文件系统,涉及到的东西更多,推荐是有一定的基础再看

  • 区分两个斜杠

    1、斜杠:"/" 与 反斜杠:"\" 
    ​
    2、反斜杠(\)是一个特殊的字符,被称为转义字符,用来转义后面一个字符。转义后的字符通常用于表示一个不可见的字符或具有特殊含义的字符,比如 \n 则表示换行,\?问号 ,\" 则表示双引号,\' 表示一个单引号 等
    ​
    3、在Java中的字母前面加上反斜线"\"来表示常见的那些不能显示的ASCII字符,我们称之为转义字符
    ​
    4、例子:需要输出双引号的一段话
        String title = " \"这个是带双引号的标题\" ";
    ​
    5、转义的详情参看 https://baike.baidu.com/item/%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6/86397?fr=aladdin
    

     

  • 相对路径

    • 相对某个基准目录或者文件的路径, ./ 表示当前路径; ../ 表示上级目录

  • 绝对路径

    • 存储在硬盘上的真正路径

  • window路径分割符

    • \ 表示windows系统文件目录分割符

    • 如果是Java代码在window下写某个文件的话需要 下面的方式

      D:\\soft\\xdclass.txt
      因为单斜杠是用来转义的

       

  • Linux和Mac路径分割符(开发人员推荐使用)

    • / 表示 Linux或者Mac的路径分隔符

    • 如果是Java代码在Linux或者Mac下写某个文件的话需要 下面的方式

      /usr/soft/xdcalss.net

       

  • 常见的文件

    • 文本 txt

    • 图片 jpg、png、jpeg

    • excel、csv等

    • tar.gzip 、zip

 

 

第2集 java核心知识之File类讲解

简介:介绍File类和相关API讲解

  • 程序代码和文件目录的关系:主要就是对文件和目录进行增删改查,俗称CRUD

  • 简单了解IO,即Input/Output

    • 把内存的中数据存储到持久化设备到上的动作称为输出,Output 操作

    • 把持久化设备的数据读取到内存中的动作称为输入,Input操作

    • 一般把输入和输出的动作称为IO操作,IO也分网络IO,文件IO

  • java文件类File:

    • 主要是计算机文件和目录的操作,即对文件的和目录的增删改查

    • File类表示磁盘中存在的文件和目录

    • File类的包名是java.io,也实现了Serializable, Comparable两大接口以便于其对象可序列化和比较

    • File.separator 目录分隔符,在不同的系统下不一样, windows和 mac /Linux

  • 常见的构造函数

    ​
    //路径和文件拼接
    public File(String pathname)
    ​
    ​
    //父路径,子路径
    public File(String parent, String child)
    ​
    ​
    //测试方法:文件的路径,即new File构造函数传入的路径
    String getPath()

     

  • 常见方法

            String dir = "C:\\Users\\79466\\Desktop\\;
    ​
            String name = "a.txt";
            File file = new File(dir, name);
            //File file = new File(dir);
    ​
    ​
            //文件的 查询和判断
            System.out.println(File.separator);
            System.out.println("基本路径 getPath()= " + file.getPath());
            System.out.println("文件名 getName()= " + file.getName());
            System.out.println("绝对路径 getAbsolutePath = " + file.getAbsolutePath());
            System.out.println("父路径名 getParent() = " + file.getParent());
            System.out.println("是否是绝对路径 isAbsolute() = " + file.isAbsolute());
            System.out.println("是否是一个目录 isDirectory() = " + file.isDirectory());
            System.out.println("是否是一个文件 isFile() = " + file.isFile());
            System.out.println("文件或目录是否存在 exists() = " + file.exists());
    ​
    ​
            System.out.println("目录中的文件和目录的名称所组成字符串数组 list() ");
            String[] arr = file.list();
            for (String temp : arr) {
                System.out.println(temp);
            }
    ​
    ​
            //创建指定的目录
            File mkdirFile = new File(dir + "/testdir");
            mkdirFile.mkdir();
    ​
    ​
            //创建多个层级的目录
            File mkdirsFile = new File(dir + "/testdirs/test/dd");
            mkdirsFile.mkdirs();
    ​
    ​
    //        //创建一个新的文件
            File newFile = new File(dir + "/testdir/newfile1.txt");
            try {
                newFile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
    ​
    ​
            //删除文件
            newFile.delete();
    

     

  • 注意:File的构造函数只是创建一个File实例,即使目录错误也不出报错,因为没对文件进行操作

 

第3集 本章课程作业练习题布置

简介: 根据本章知识点布置课程作业

  • 封装一个方法,传入一个路径,则在此路径下创建test文件夹

  • 然后在 test目录下创建10个文件夹,名称是1~10,然后再各个文件夹里面创建一个txt文本文件, 名称也是1~10命名,重复调用此方法的话结果一样。

test/
    1/
        1.txt
    2/
        2.txt
    3/
    ...


第4集 本章课程作业常见问题和答案解析

简介: 讲解课程作业常见问题和答案解析

  • 封装一个方法,传入一个路径,则在此路径下创建test文件夹

  • 然后在 test目录下创建10个文件夹,名称是1~10,然后再各个文件夹里面创建一个txt文本文件, 名称也是1~10命名,重复调用此方法的话结果一样。

test/
    1/
        1.txt
    2/
        2.txt
    3/
    ...


答案代码

public static void main(String[] args) throws IOException {
​
        String path ="C:\\Users\\79466\\Desktop;
​
        createDir(path);
    }
​
    public static void createDir(String path) throws IOException {
​
        String root = path + File.separator + "test";
        File rootDir = new File(root);
        if (!rootDir.exists()) {
            rootDir.mkdirs();
        }
​
        for (int i = 0; i < 10; i++) {
​
            String dirPath = root + File.separator + (i + 1);
            File dirFile = new File(dirPath);
            if (!dirFile.exists()) {
                dirFile.mkdir();
                String txtPath = dirPath + File.separator + (i + 1) + ".txt";
                File txtFile = new File(txtPath);
                if (!txtFile.exists()) {
                    txtFile.createNewFile();
                }
            }
        }
​
    }


干货文档

                                                        关注公众号发送:“优快云干货文档”  即可领取

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片 基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正 立即下载

相关推荐

量化平台深度测评:聚宽 / 米筐 / 迅投 QMT 对比分析

本文对比测评国内主流量化交易平台聚宽、米筐和迅投QMT,从回测性能、实盘稳定性和高级功能三方面展开分析。测试显示:聚宽在低频策略回测中效率最高(128秒),米筐次之;迅投QMT凭借C++直连架构实现最低延迟(150ms)和最高订单撤销成功率(98.5%)。平台特色方面,QMT的智能拆单算法可减少25%滑点损失,聚宽的因子库支持版本控制和缓存复用。建议低频策略选聚宽,高频交易选QMT,团队协作优先考虑聚宽。测试数据均来自合规实盘环境,建议根据策略特性进行试用验证。

tianchi2009123的博客 7371

Mysql原理篇之表空间---05

通过前边儿的内容大家知道,表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。在我们目前的认知中: 一个表的索引和数据信息由一颗聚簇索引树提供,这颗聚簇索引树每个节点都对应一个数据页,数据越多,树越高,节点越多,当前索引树占据数据页越多,而表空间就是负责管理当前表占用的一堆数据页的。今天我们就来聊聊表空间是如何管理这一堆数据页的。

m0_53157173的博客 2879

hcaptcha无感验证码逆向实战:从接口分析到环境补全

本文详细解析了hcaptcha无感验证码的逆向实战过程。通过分析核心接口与加密逻辑,重点介绍了采用环境补全策略来模拟真实浏览器环境,从而绕过验证码检测。文章提供了从接口抓包、剖析hsw.js加密核心到使用Node.js搭建模拟环境的完整步骤,为自动化操作提供了一种稳健的解决方案。

weixin_29324401的博客 1151

Linux基础和常用命令(一)

Linux的7种文件类型 普通文件:存在于外部存储器,用于存储普通数据。 目录文件:用于存放目录项,是文件系统管理的重要文件类型 连接文件:用于间接访问另外一个文件目标(windows快捷方式) 管道文件:一种用于进程间通信的特殊文件 套接字文件:一种用于网络间通信的特殊文件 块设备文件:就是存储数据以供系统存取的借口设备,简单而言就是硬盘 字符设备文件:字符设备在应用层的访问接口 linux系统目录树架构就是以根目录为主,然后向下呈分支状的目录结构。

weixin_43978088的博客 267

基于迁移学习的花卉识别系统

本研究采用了预训练的经典深度学习模型,包括ResNet、AlexNet和VGG,通过微调的方式在Oxford-102数据集和一个自制花卉数据集上进行训练,并对图像进行了多种数据增强操作,以提高模型的泛化能力,致力于实现花卉的高效分类。

m0_71146337的博客 2375

TI单芯片毫米波雷达1642demo代码走读(一)

今天我们来实际看下代码。 首先使用CCS软件导入demo工程,工程有两个,一个是ARM的工程,工程名是mmw_mss_16xx;另一个是DSP的工程,工程名为mmw_dss_16xx。我们将这两个工程的主函数打开,分别位于mss_main.c和dss_main.c文件中。 先看mss的主函数,代码如下。我为每行代码都加了中文注释和自己的理解。 int main (void) { Task_Params taskPara...

1万+

MySQL怎样运行的

MYSQL记录行格式 记录头信息中各二进制位代表的详细信息 名称 大小(位) 描述 预留位1 1 没有使用 预留位2 1 没有使用 deleted_flag 1 标记该记录是否被删除 min_rec_flag 1 B+树的每层非叶子节点中最小的目录项记录都会添加该标记 n_owned 4 一个页面中的记录会被分成若干个组,每个组中有一个记录是“带头大哥”,其余的记录都是“小弟”。“带头大哥”记录的n_owned值代表该组中所有的记录条数,“小弟”记录的n_owned值都为0

XinHan1996的博客 1227

Oracle EBS与SAP数据数据切换至迁移华为MetaERP分析

Oracle EBS到华为MetaERP的数据迁移可采用“表对表复制”思路,因其模块化设计下数据模型标准化、边界清晰。核心业务对象存储在结构明确的主表中,与MetaERP模型兼容度高,便于直接映射。而SAP到MetaERP的迁移则因SAP高度优化的复杂表结构(如簇表/池表)、数据分散冗余、深度依赖配置等特点,无法简单复制,必须采用基于业务对象的迁移方法,通过视图/BAPI提取数据并进行深度转换。两种迁移的本质差异源于源系统的数据模型设计理念不同。

金牌架构师 1378

Mysql 学习(七)独立表结构存储 二

段的结构 上一节说过表空间分为各个段,每个段里面又是以区为单位,每个区则有64个页。区根据剩余存储空间分为:Free,FREE_FRAG,FULL_FRAG 三种类型,为了方便管理区,给每个区创建XDES Entry结构,然后给这三种类型创建三个对应的XDES Entry结构链表。 像每个区都有对应的XDES Entry来记录这个区中的属性一样,设计InnoDB的大佬为每个段都定义了一个INODE Entry结构来记录一下段中的属性,如下图: Segment ID:就是指这个INODE Entry结构对

qq_41816516的博客 632

FastAPI 高级特性:同异步路由函数、依赖注入与后台任务

在现代 Web 开发中,高效的性能和简洁的代码结构是至关重要的。FastAPI 作为一个现代、快速(高性能)的 Web 框架,凭借其对异步编程的原生支持和直观的依赖注入系统,迅速成为开发者的热门选择。在本文中,将深入探讨 `FastAPI` 中的几个核心概念:同异步函数的区别、`Depends` 依赖以及后台任务。

qq_43629857的博客 203

给跨代引用记一本账:Java GC 的分配路径、卡表写屏障与收集器版图快速回顾

本文把 Java GC 的零散名词串成一条推理链路:从 TLAB 指针碰撞分配、逃逸分析,到 Eden、Survivor 与晋升的四条路,重点拆解卡表与写屏障如何为老年代指向新生代的引用记账,及 Minor GC 如何只扫脏卡。基于 JDK 8 实测:分散写使 Young GC 停顿涨 10~15 倍,条件卡标记消除卡表伪共享,计数循环让 System.gc 等待 2.7 秒,Survivor 过小使晋升量增加约 400 倍。文末梳理 JDK 8 到 27 的收集器演进、选型路径与排查顺序。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 17万+

mysql inode_【Linux】inode_针对MySQL读写操作在系统层的进一步学习【转】

转自http://www.cnblogs.com/itech/archive/2012/05/15/2502284.html一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"...

weixin_30247833的博客 290

【100分】【等和子数组最小和】

逆序排序,这样能够使得在分组时优先选取较大的元素,以便将元素分配到较小的子集中,从而使得每个子集的和相对均衡。给定一个数组nums,将元素分为若干个组,使得每组和相等,求出满足条件的所有分组中,组内元素和的最小值。分成若干个组,使得每组的和相等,并求出满足条件的所有分组中,组内元素和的最小值。在递归的过程中,我们需要注意一个优化点,即避免将相同和的桶重复计算。4 个子集(5),(1,4),(2,3),(2,3)2 个子集(5, 1, 4),(2,3, 2,3)个子集,则返回子集和的最小值,如果不能,则将。

weixin_54707168的博客 1168

小滴课堂-学习笔记:新版Javaweb核心之文件上传下载实战

愿景:"让编程不再难学,让技术与生活更加有趣" 更多架构课程请访问 xdclass.net 目录 第1集 新版javaweb的文件上传讲解 第2集 javaweb核心之文件下载实战 干货文档 第1集 新版javaweb的文件上传讲解 简介:讲解Javaweb文件上传 javaweb文件上传 Web应用系统开发中,文件上传和下载功能是非常常用的功能,浏览器在上传的过程中是将文件以流的形式提交到服务器端的 前端开发 1)表单的提交方法必须是post 2)需要声明是...

dev666的博客 172

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

mysql inode_你真的对 Linux 中的 Inode 了解吗?

引言inode 是一个Linux 非常重要的知识点,了解它有利于我们对Linux系统的进一步了解。今天无意中看到了阮一峰老师对inode做的一个博客笔记,我这里简单的记录下学到的东西。概念存储单位:扇区 (Sector),存世512字节(相当于0.5kb)块(block),8个Sector 组成一个 block文件存储分为两个部分:数据存储文件元信息文件元信息就是inodeinode内容inode...

weixin_30986285的博客 268

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java标准库的Java.io.File对象表示一个文件或目录

File文件对象

weixin_45939128的博客 757

Linux常用命令

目录 一、基本命令 1.1 关机和重启 1.2 帮助命令 二、目录操作命令 2.1 目录切换 cd 2.2 目录查看 ls [-al] 2.3 目录操作【增,删,改,查】 2.3.1创建目录【增】 mkdir 2.3.2删除目录或文件【删】rm 2.3.3目录修改【改】mv 和 cp 2.3.4搜索目录【查】find 三、文件操作命令 3.1 文件操作【增,...

Demon的博客 169万+

Linux常用命令大全

Linux常用命令大全,超详细

程序前行者的博客 16万+

MySQL-InnoDB数据页结构浅析

在中,们简单提了一下的概念,它是 InnoDB 管理存储空间的基本单位,一个页的大小一般是 16KB。InnoDB 为了不同的目的而设计了许多种不同类型的。

ALONG的博客 632

Java 文件和目录_Java中文件与目录管理

目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率。Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录。每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息。通过调用 File 类提供的各种方法,能够创建、删除、重名名文件、判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间...

weixin_29471325的博客 690

Linux 常用命令最全总结大全【推荐收藏】

Linux 常用命令

qq_43108153的博客 16万+

File基本操作

File基本操作 构造方法摘要 File(File parent, String child)            根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 File(String pathname)            通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。 F

梁小明的博客 673

【Linux实践室】Linux常用命令:文件操作 文件夹操作

本文主要讲解 Linux 的文件和文件夹操作的常用命令:文件操作创建文件 ——touch;删除文件 ——rm;文件夹操作创建文件夹 ——mkdir;删除文件夹 ——rmdir或者rm -r;文件和文件夹拷贝 ——cp;文件和文件夹移动/重命名 ——mv。今天的干货分享到这里就结束啦!如果觉得文章还可以的话,希望能给个三连支持一下,聆风吟的主页还有很多有趣的文章,欢迎小伙伴们前去点评,您的支持就是作者前进的最大动力!

2301_77118221的博客 1659

less命令查找手机号_超详细的Linux常用命令学习 值得收藏!!

1、ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文件,包含以.开始的隐藏文件 ls -A 列出除.及..的其它文件 ls -r 反序排列 ls -t 以文件修改时间排序 ls -S 以文件大小排序 ls -h 以易读大小显示 ls -l 除了文件名之...

weixin_39849127的博客 2891

Linux命令大全(非常详细)从零基础入门到精通,看完这一篇就够了

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…最常用的打包命令是 tar,使用 tar 程序打出来的包我们常称为 tar 包,tar 包文件的命令通常都是以 .tar 结尾的。

Javachichi的博客 4万+

mysql inode_Linux中inode的大小、作用讲述

linux中的inode理解inodeinode是文件存储,文件存储在营盘山,最小的存储单位叫扇区。每个扇区的存储512字节。操作系统读取硬盘的时候,不会一个一个扇区的读取,这样效率太低。而是一次性读取多个扇区,一次性读取一个块。也就是8个连续的扇区组成一个block。文件存储在块中,但是我们还需要找一个存储元信息的区域叫做inode。中文译名“索引节点”。每个文件都有对应的索引节点。inode的...

weixin_35951275的博客 249

java web 写入文件路径_(转)Java web 项目中文件路径

Java路径问题最终解决方案—可定位所有资源的相对路径寻址前言Java的路径问题,非常难搞。最近的工作涉及到创建和读取文件的工作,这里我就给大家彻底得解决Java路径问题。我编写了一个方法,比ClassLoader.getResource(String 相对路径)方法的能力更强。它可以接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源。这样,我们就可以使用相对于clas...

weixin_32561885的博客 722
上一篇: 小滴课堂-学习笔记:(9)Java进阶核心之三大集合框架拓展
下一篇: 小滴课堂-学习笔记:(11)Java进阶核心之Input、Output Stream流
dev666
博客等级 码龄9年 100粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dev666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值