File

从零开始学IO_FILE的堆利用:理解IO_FILE之fread ​ 实际上就是FILE结构体中vtable的__xsgetn函数,跟进去/libio/fileops.c。​ _IO_file_xsgetn是处理fread读入数据的核心函数,分为以下几个部分:fp->_IO_buf_base为空时,表明此时的FILE结构体中的指针未被初始化,输入缓冲区未建立,则调用_IO_doallocbuf去初始化指针,建立输入缓冲区。输入缓冲区有输入,即fp->_IO_read_ptr小于fp->_IO_read_end,此时将缓冲区里的数据直接拷贝到目标buff。 阅读详情
1.File类的作用

可以用来表示磁盘上的某个文件或者某个文件夹

2.File类的构造

public File(String pathname);以指定的路径创建File对象
public File(String parent,String child);以指定父路径和子路径创建File对象
public File(File parent,String child);以指定父File对象和子路径创建File对象

public class FileDemo01 {
    public static void main(String[] args) {
        //File类的构造方法
        //1.直接指定路径
        File f1 = new File("C:\\Users\\Administrator\\Desktop\\temp\\aaa\\1.txt");
        System.out.println(f1);
        File f2 = new File("C:\\Users\\Administrator\\Desktop\\temp\\aaa\\111");
        System.out.println(f2);
        //2.以指定父路径和子路径创建File对象
        File f3 = new File("C:\\Users\\Administrator\\Desktop","temp\\aaa\\1.txt");
        System.out.println(f3);
        //3.以指定父File对象和子路径创建File对象
        File parent = new File("C:\\Users\\Administrator\\Desktop");
        File f4 = new File(parent,"temp\\aaa\\1.txt");
        System.out.println(f4);
    }
}    
3.File类的获取方法

public String getAbsolutePath(); 获取文件的绝对路径
public String getPath(); 获取构造时传入的路径
public String getName(); 获取名字(不带路径)
public int length();获取大小(单位字节)

/**
 * File类的获取方法
 */
public class FileDemo02 {
    public static void main(String[] args) {
        //1.创建File对象
        File f1 = new File("C:\\Users\\Administrator\\Desktop\\temp\\aaa\\1.txt");
        //2.获取绝对路径(以盘符开头的路径)
        String absolutePath = f1.getAbsolutePath();
        System.out.println(absolutePath);
        //3.获取构造时传入的路径
        String path = f1.getPath();
        System.out.println(path);
        //3.获取名字
        System.out.println(f1.getName());
        //4.获取大小
        System.out.println(f1.length());
    }
}

注意事项:
length方法只适用于获取文件的长度,不能获取文件夹的长度(获取到的是一个不确定的值)

4.相对路径和绝对路径的概念[重点]

绝对路径: 以盘符开头的全路径
比如: “C:\Users\Administrator\Desktop\temp\aaa\1.txt”

相对路径: 相对于当前项目的根目录而言的
比如: “111.txt” —> 当前项目根目录/111.txt

/**
 * 相对路径和绝对路径
 */
public class FileDemo03 {
    public static void main(String[] args) {
        //1.绝对路径
        File f1 = new File("C:\\Users\\Administrator\\Desktop\\temp\\aaa\\1.txt");
        System.out.println(f1.getAbsolutePath());
        System.out.println(f1.getPath());
        //2.相对路径
        File f2 = new File("222.txt");
        System.out.println(f2.getAbsolutePath());
        System.out.println(f2.getPath());
        //绝对路径: E:\workspace\heima34\abc\222.txt
        //相对路径: abc\222.txt
    }
}   
5.File类的判断方法

public boolean isFile(); 判断是否为文件
public boolean isDirectory();判断是否为文件夹
public boolean exists();判断是否存在

/**
 * File类的判断方法
 */
public class FileDemo04 {
    public static void main(String[] args) {
        //1.创建File对象
        File f1 = new File("222.txt");
        //2.判断
        System.out.println(f1.isFile()); //true
        System.out.println(f1.isDirectory()); //false
        System.out.println(f1.exists());//true
        System.out.println("-------------");
        //3.创建File对象
        File f2 = new File("bbb");//不存在的bbb
        //4.判断
        System.out.println(f2.isFile()); //false
        System.out.println(f2.isDirectory()); //false
        System.out.println(f2.exists());//false
    }
}

注意:
1.判断是文件还是文件夹不能看名字!!
因为文件夹可能叫111.txt 文件可能叫aaa
2.File对象所表示的文件或者文件夹不存在时,调用isFile或者isDirectory没有意义,结果均为false

6.File类的创建删除方法

public boolean createNewFile();创建文件
public boolean mkdir();创建一级文件夹
public boolean mkdirs();创建多级文件夹
public boolean delete();删除文件或者"空"文件夹

/**
 * File类的创建和删除
 */
public class FileDemo05 {
    public static void main(String[] args) throws IOException {
        //1.创建File对象
        File f1 = new File("111.txt");
        //2.创建文件
        boolean b = f1.createNewFile();
        System.out.println(b);
        //删除文件
        System.out.println(f1.delete());
        //3.创建File对象
        File f2 = new File("abc");
        //4.创建文件夹
        boolean b1 = f2.mkdir();
        System.out.println(b1);
        //删除文件夹
        System.out.println(f2.delete());
        System.out.println("-----------------");
        //5.mkdir和mkdirs的区别
        File f3 = new File("aaa\\bbb\\ccc");
        System.out.println(f3.mkdir()); //false 只能创建一级文件夹
        System.out.println(f3.mkdirs()); //true 可以创建多级文件夹
    }
}

注意:
a.只有存在的情况下才能删除成功,只有不存在的情况下才能创建成功
b.删除时如果是非空的文件夹,也会删除失败
c.创建时如果多级文件夹,必须使用mkdirs,使用mkdir也会创建失败

7.File类遍历目录的方法

public String[] list();列出当前目前下所有文件或者文件夹的名字
public File[] listFiles(); 列出当前目前下所有文件或者文件夹的File对象

/**
 * File类的遍历目录
 */
public class FileDemo06 {
    public static void main(String[] args) throws IOException {
        //1.File对象
        File f = new File("C:\\Users\\Administrator\\Desktop\\temp\\aaa");
        //2.list
        String[] fileNames = f.list();
        for (String fileName : fileNames) {
            System.out.println(fileName);
        }
        System.out.println("----------");
        //3,listFiles
        File[] files = f.listFiles();
        for (File file : files) {
            System.out.println(file);
        }
    }
}  
关于THIS_FILE VC++中本身就有内存泄漏检查的机制,可以在向导生成的支持MFC的工程中看到如下代码:  #ifdef _DEBUG  #define new DEBUG_NEW  #undef THIS_FILE  static char THIS_FILE[] = __FILE__;  #endif先具体解释一下:#ifdef _DEBUG //如果有定义_DEBUG #define new DEBU 阅读详情

相关推荐

#undef THIS_FILE的问题

MFC给你生成的cpp文件里面都有这么几行:   1  #ifdef _DEBUG   2  #define new DEBUG_NEW   3  #undef THIS_FILE   4  static char THIS_FILE[] = __FILE__;   5   #endif 在Visual studio 中通常只用1~3行。对于这段代码的作用,通常有一下解释:

Ronger0828的专栏 7027

linux file 结构体,FILE 结构体

C语言中FILE 结构体1、FILE 是 C语言文件结构定义, 打开文件和文件操作要用到这类结构。可以看成变量类型,用于变量声明。这个是一种数据结构类型,用来表示一个文件的相关信息,如果定义了一个文件指针,就用这个指针来指向某个文件,然后就能使用这个指针对文件来进行操作了。2、FILE在"stdio.h"中有如下定义:struct_iobuf{char*_ptr;//文件输入的下一个位置i...

weixin_42376589的博客 1853

抖音直播“卡黑屏”技术解析:从实现原理到平台风控与合规运营

在直播技术领域,视频流推送与实时互动是核心基础。其原理在于通过编码软件(如OBS)将音视频数据封装后,经由网络协议推送到服务器,再分发给观众。这项技术的价值在于支撑了实时、高并发的在线互动场景,是直播、在线会议等应用的基石。然而,在追求流量和互动的实践中,衍生出一些非常规操作,例如通过技术手段中断或控制视频流推送,仅保留音频和互动功能,以达到特定运营目的。这便涉及到了**卡黑屏**这一具体现象。它本质上是对直播流的人为干预,常与**流量博弈**和**风险规避**等动机相关联。从工程实践角度看,实现方式多样,

weixin_29895109的博客 1306

Java中File的使用

Java中File的使用File构造方法File类获取功能的方法File判断功能的方法File类创建删除功能的方法File类遍历(文件夹)目录功能 File构造方法 File(); File(String fileName); File(File parent,String child); FIle(String parent,String child) File类获取功能的方法 public string getAbsolutePath():返回此FiLe的绝对路径名字符串。 public stri

qq_43609524的博客 3855

Navicat16/17数据库密码安全解析与实战解密指南

本文详细解析了Navicat 16/17版本中数据库密码的加密机制,并提供了实用的密码找回指南。通过导出连接文件获取加密密文,利用基于AES-128-CBC算法的本地HTML工具,可安全、离线地解密遗忘的密码。文章强调该方法仅适用于合法恢复自有密码,并给出了操作步骤与安全建议。

weixin_28835583的博客 467

Vue3 与 Bpmn-js:打造现代化 BPMN 流程设计器

随着业务流程的复杂化,流程设计器成为企业级应用中不可或缺的一部分。BPMN(Business Process Model and Notation)是一种标准的业务流程建模语言,广泛应用于业务流程管理。本文将介绍如何使用 Vue3 和 Bpmn-js 打造一个现代化的 BPMN 流程设计器。

九天的专栏 2117

new file 的路径问题_FILE文件结构

FILE 结构FILE 介绍FILE 在 Linux 系统的标准 IO 库中是用于描述文件的结构,称为文件流。FILE 结构在程序执行 fopen 等函数时会进行创建,并分配在堆中。我们常定义一个指向 FILE 结构的指针来接收这个返回值。FILE 结构定义在 libio.h 中,如下所示struct _IO_FILE { int _flags; /* High-ord...

weixin_35461942的博客 3855

【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

目录 通过/dev/tcp、/dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp、/dev/udp (https://blog.youkuaiyun.com/u010039418/article/details/86251470) 通过/dev/tcp、/dev/udp可以直接在shell脚本中发起tcp、udp连接,方便又高效,平时用于测试啥的还是挺方便的。 直接发送 格式 /dev/udp/ip/port 比如要向本地10001端口发送数据,可以使用 ec.

我的笔记本 1万+

FILE 结构

FILE 在 Linux 系统的标准 IO 库中是用于描述文件的结构,称为文件流。FILE 结构在程序执行 fopen 等函数时会进行创建,并分配在堆中。我们常定义一个指向 FILE 结构的指针来接收这个返回值。0&&==0x20001||一共大小为:0xE8进程中的会通过**_chain 域_IO_list_all** 表示,通过这个值我们可以遍历所有的 FILE 结构。。因此在初始状态下,(指针) 指向了一个有这些文件流构成的链表,但是需要注意的是这三个文件流位于。

yjh_fnu_ltn的博客 832

5分钟搞定Google Custom Search API申请:从注册到获取CX Key全流程

本文详细介绍了如何快速申请和配置Google Custom Search API,从Google Cloud项目创建、启用计费、获取API Key,到在Programmable Search Engine控制台创建自定义搜索引擎并获取关键的CX Key,提供了全流程实战指南。文章还包含安全配置建议、API调用测试方法及前端与后端的集成代码示例,帮助开发者高效实现网站或应用的智能搜索功能。

weixin_29227585的博客 1668

ai数字人系统部署

这段代码实现了基本的语音交互闭环,用户通过语音输入问题,数字人识别语音后进行自然语言理解并生成回复,再将回复转换为语音输出。但实际应用中的 AI 数字人系统更为复杂,如形象渲染需专业图形引擎(如 Unity、Unreal Engine),自然语言处理也会涉及更复杂的模型微调及多轮对话管理等。一个完整的 AI 数字人系统涵盖形象生成、自然语言处理、动作控制等多个复杂功能,下面为你提供一个 Python 示例,整合多个库来实现数字人基础功能,包括语音交互、简单的自然语言理解以及通过虚拟形象展示对话。

weixin_ggwwsscc的博客 370

【vscode】FILE提示报错及未有FILE代码提示问题

文章目录【vscode】FILE提示报错及未有FILE代码提示问题一、说明二、前言三、错误提示四、解决方案1、c_cpp_properties.json2、修改 c_cpp_properties.json3、修改结果 【vscode】FILE提示报错及未有FILE代码提示问题 一、说明 1、windows系统 2、MinGW 二、前言         在使用...

贾继康的博客 3759

必知必会:DeepSeek-R1训练流程详解

必知必会:DeepSeek-R1训练流程详解

丨汀、的博客 287

【C++】ifstream、file.good、 file.seekg、file.tellg、file.read详解

本文主要对ifstream、file.good、 file.seekg、file.tellg、file.read等函数功能进行详细解析,包括原理和步骤,最后通过一个示例进行总结。

不定时分享,互相学习,共同进步 6121

笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

10 笔试题-2023-思特威-数字电路设计(CIS)【纯净题目版】

w0shishabi的博客 1472

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C语言FILE结构体

FILE结构体 FILE是C语言标准库stdio.h中定义的一个结构体,用于数据缓存,一般写为 //stdio.h typedef struct _iobuf { char* _ptr; //文件输入的下一个位置 int _cnt; //当前缓冲区的相对位置 char* _base; //文件初始位置 int _flag; //文件标志 int _file; //文件有效性

微小冷的学习笔记 5779

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

IO_file attack

Io_file attack

Hyrink的博客 915

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MySQL权限篇之FILE

FILE权限,global privilege,服务器上的文件访问权限,是指在mysql服务器上有通过mysql实例读取或者写入操作系统目录文件的权限。 该权限影响如下三个操作: LOAD DATA INFILE INTO OUTFILE  LOAD_FILE() 先看看INTO OUTFILE 子句,该子句指定了将结果集直接导出到某个操作系统的文件中。如: SELECT

Qiuht的技术博客 4343

FILE结构体概述

FILE结构 FILE结构体的定义(截自/glibc2.23/libio/libio.h) struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ #define _IO_file_flags _flags /* The following pointers correspond to the C++ streambuf protocol. */ /* Note: Tk uses

qq_45595732的博客 1824

File类

file类

weixin_51432198的博客 2178

mysql中FILE权限

FILE权限指的是对服务器主机上文件的访问,数据库用户拥有FILE权限才可以执行select into outfile,load data infile操作。 参考文章:http://blog.itpub.net/27126919/viewspace-2125131/ 测试select into outfile操作 root用户上执行 mysql> CREATE USE...

weixin_30478923的博客 985

file_get_contents()和file_put_contents() 的用法

1、file_get_contents() 函数把整个文件读入一个字符串中。 file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。 file_get_contents(path,include_path,context,start,max_length) 参数 描述 path 必需。规定要读取的文件。 include_path 可选。如果也想在 include_path 中搜寻文件的话

qq_36627117的博客 3623

Linux下的FILE*结构体

FILE*结构体解析

rushing的博客 1万+

linux用file命令,Linux系统中file命令的使用详解

命令简介:该命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。执行权限 :All User指令所在路径:/usr/bin/file命令语法:复制代码代码如下:file [ -bchikLnNprsvz ] [ -f namefile ] [ -F separator ] [ -m magicfiles ...

weixin_35319943的博客 3444

php手册file(),php file 函数

php file 函数file( PHP 4中, PHP 5中)file-读取整个file到一个数组描述一系列file(字符串$file[摘要$国旗= 0 [ ,资源$背景] ] )读取整个file到一个数组。注:您可以使用file_get_contents ( )返回file内容作为一个字符串。参数file名file路径。提示网址可以用来作为file名与此功能,如果打开包装已启用。见fopen ...

weixin_39533174的博客 682

15、FILE_SEARCH和FILE_TEST

1. FILE_SEARCH 1.1 Syntax Result = FILE_SEARCH(Path_Specification) Keywords: [, COUNT=variable ] [, /EXPAND_ENVIRONMENT ] [, /EXPAND_TILDE ] [, /FOLD_CASE ] [, /FULLY_QUALIFY_PATH ] [, /ISSUE_ACCESS_...

编程学习,从0到1 723
上一篇: Lambda表达式
下一篇: 人用迭代 神用递归
lemon20120331
博客等级 码龄9年 277粉丝 119原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

lemon20120331

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

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

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

打赏作者

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

抵扣说明:

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

余额充值