344. Java IO API - 获取文件的元素

344. Java IO API - 获取文件的元素

文章目录

344. Java IO API - 获取文件的元素

在 Java 中,File 类提供了一些方法来获取文件或目录的相关信息。以下是几种常用的方法,它们可以帮助您获取文件的名称、路径及其他重要属性。

1. 获取文件或目录的名称

StringgetName()

该方法返回文件或目录的名称(不包括路径)。它只返回文件或目录的最后一部分,即文件名。

示例:
File file =newFile("C:/Documents/example.txt");System.out.println("文件名: "+ file.getName());

输出:

文件名: example.txt 

在这个示例中,getName() 返回了文件的名称 example.txt,而不是文件的完整路径。

2. 获取父目录路径

StringgetParent()

该方法返回文件的父目录的路径字符串。如果该文件没有父目录(例如根目录或文件本身),则返回 null

示例:
File file =newFile("C:/Documents/example.txt");System.out.println("父目录路径: "+ file.getParent());

输出:

父目录路径:C:/Documents

在这个例子中,getParent() 返回了文件 example.txt 所在的父目录 C:/Documents

3. 获取文件的完整路径

StringgetPath()

该方法返回文件的路径字符串。与 getAbsolutePath() 不同,它返回的是文件实例化时提供的路径,无论该路径是绝对的还是相对的。

示例:
File file =newFile("C:/Documents/example.txt");System.out.println("文件路径: "+ file.getPath());

输出:

文件路径:C:/Documents/example.txt 

在这个例子中,getPath() 返回的是构造 File 实例时提供的路径字符串。

4. 获取文件的绝对路径

StringgetAbsolutePath()

该方法返回文件的绝对路径字符串。如果文件路径已经是绝对路径,则直接返回该路径;如果是相对路径,则将其解析为绝对路径。

示例:
File file =newFile("example.txt");System.out.println("绝对路径: "+ file.getAbsolutePath());

输出:

绝对路径:C:/Users/username/example.txt 

在这个例子中,getAbsolutePath() 返回了 example.txt 的绝对路径。如果 example.txt 是一个相对路径,Java 会将其解析为当前工作目录下的绝对路径。

5. 获取文件的规范路径

StringgetCanonicalPath()

该方法返回文件的规范路径,它是一个唯一且绝对的路径。在生成规范路径时,Java 会处理一些冗余的元素,如 .(当前目录)和 ..(父目录),并解析符号链接。

示例:
File file =newFile("C:/Documents/../Documents/example.txt");System.out.println("规范路径: "+ file.getCanonicalPath());

输出:

规范路径:C:/Documents/example.txt 

在这个例子中,getCanonicalPath() 返回了规范路径 C:/Documents/example.txt,它已经解析了路径中的 ..(父目录)。


总结

通过这些方法,可以方便地获取 File 实例的各种路径信息,包括文件名称、父目录、完整路径、绝对路径和规范路径。这些方法对于处理文件系统中的文件和目录非常有用,尤其是在构建动态文件路径、处理相对路径和解析符号链接时。

Read more

04_Dify 单独启动前端 Docker 容器

04_Dify 单独启动前端 Docker 容器

前言 本文介绍了在前后端分离开发场景下,部署Dify前端服务的两种Docker化方案。一是直接使用官方DockerHub镜像启动前端容器,支持最新版或指定版本,并配置后端API地址;二是通过源码本地构建自定义镜像后再启动。两种方法均通过环境变量配置控制台与应用的API连接,并提供了本地访问验证方式,适合后端开发者专注业务逻辑时快速启用前端界面。 一、直接使用 DockerHub 镜像 当单独开发后端时,可能只需要源码启动后端服务,而不需要本地构建前端代码并启动,因此可以直接通过拉取 docker 镜像并启动容器的方式来启动前端服务。 1.1 启动后端服务 查看教程:👉 Dify开源版使用源代码本地启动(一至五部分) 查看教程:👉 dify-plugin-daemon使用源码启动图文教程 1.2 使用 DockerHub 镜像启动前端 Docker 容器 获取最新版本 docker run -it -p 3000:3000 -e CONSOLE_API_URL=http://127.0.0.

By Ne0inhk

JSP基础1:客户端请求端,前端和后端的联系(半成品)

JSP虽然是20年前的老框架,它的存在是为了讲解前后端不分离,在前端html,css中可以嵌入兼容java后端代码,类似的有vue3 下面的看不懂先跳过 问题如下:request对象 = 后端创建,封装前端发送的数据或请求. 还有哪些对象可以对前后端互相发送的请求做处理.哪些对象可以进行前后端交互 在Java Web开发中,主要使用以下对象处理前后端交互:(JSP很老的框架没必要都学把下面能让你理解前后端交互的学了就行) 对象创建位置主要作用数据流向request服务器端封装请求信息前端→后端response服务器端封装响应信息后端→前端session服务器端维护用户会话双向application服务器端全局共享数据双向Cookie服务器端创建,前端存储小数据持久化双向 选择建议:临时数据传递 → request用户状态保持 → session小数据持久化 → Cookie全局数据共享 → application 以上内容看不懂先跳过 1. "客户端"的含义 在 request 对象的上下文中,"客户端"指的是: * 浏览器(Chrome、Firefox、E

By Ne0inhk

Spring Boot 项目中的响应式应用(Reactive Web)与传统 MVC:原理区别、代码对比与适用场景

Spring Boot 项目中的响应式应用(Reactive Web)与传统 MVC:原理区别、代码对比与适用场景 在 Spring Boot 项目中,开发者经常需要在传统 Spring MVC 和响应式 WebFlux 之间做出选择,尤其当配置文件中出现 spring.main.web-application-type: reactive 时。本文将从底层原理、线程模型、I/O 处理方式、适用场景等角度详细对比两者,并通过实际代码示例说明差异。 1. 核心原理对比 维度传统 Spring MVC (Servlet-based)Spring WebFlux (Reactive / Non-blocking)编程范式命令式(Imperative)声明式 + 响应式(Declarative + Reactive)底层 I/

By Ne0inhk
Ubuntu24.04/Open WebUI+Ollama 本地部署

Ubuntu24.04/Open WebUI+Ollama 本地部署

官方文档 🏡 首页 | Open WebUI 文档 本地部署 * 连接本地 Ollama 服务: * 使用服务器测试了下:初次对话耗时较长,后续效率还不错;目前无法联网(废话) 对话中即可选择模型:不过我的硬件不支持,所以就先不做测试了 修改 Ollama 配置:宿主机 Ollama 服务地址:http://host.docker.internal:11434(我猜你不想一个一个字母敲,就直接大胆使用“cv大法”吧) 查看本地模型 ID: 管理员面板/设置/外部连接: 运行页面: 使用 Docker Compose 封装运行:其中镜像拉取速度比较慢 docker compose up -d 修改配置文件:由于本地已经运行了 Ollama

By Ne0inhk