使用String path = FileUtilTest.class.getResource(“/1.txt“).getPath(); 報找不到路徑

在windows環境運行,下面的springboot中path怎么找不到文件呢? path輸出后的結果是:路徑是多少:/D:/bjpowernode/msb/%e4%b9%90%e4%b9%8b%e8%80%85/apache%20commons/SpringBootBase6/target/test-classes/1.txt 怎么解決一下呢? import cn.hutool.core.io.FileUtil; public class FileUtilTest { @Test public void test3() { String path = FileUtilTest.class.getResource("/1.txt").getPath(); System.out.println("路徑是多少:"+path); } }

在Windows環境下,當你使用Class.getResource()方法獲取資源路徑時,可能會遇到路徑格式問題,特別是涉及到URL編碼(如空格被轉換為%20,中文字符被轉義等)的情況。從你提供的路徑輸出結果來看,確實存在這種URL編碼的問題。

解決方案
要解決這個問題,你可以采取以下幾種方法之一:

方法一:使用Paths.get(URL.toURI())來正確處理路徑
Java的Paths類和URI類可以幫助我們正確處理這些轉義字符,并生成正確的文件系統路徑。以下是修改后的代碼示例:

Java
深色版本
import cn.hutool.core.io.FileUtil;
import org.junit.Test;

import java.net.URL;
import java.nio.file.Paths;

public class FileUtilTest {

? ? @Test
? ? public void test3() throws Exception {
? ? ? ? URL resourceUrl = FileUtilTest.class.getResource("/1.txt");
? ? ? ? String path = Paths.get(resourceUrl.toURI()).toString();
? ? ? ? System.out.println("路徑是多少:" + path);

? ? ? ? // 如果你需要讀取文件內容,可以繼續使用path變量
? ? ? ? byte[] bytes = FileUtil.readBytes(path);
? ? ? ? System.out.println("bytes.length=" + bytes.length);
? ? }
}
方法二:直接使用getResourceAsStream()
為了避免路徑轉換帶來的問題,可以直接使用getResourceAsStream()方法來獲取輸入流,而不是嘗試將URL轉換為文件路徑。這種方法更加通用且不易出錯:

Java
深色版本
import cn.hutool.core.io.IoUtil;
import org.junit.Test;

import java.io.InputStream;

public class FileUtilTest {

? ? @Test
? ? public void test3() throws Exception {
? ? ? ? InputStream inputStream = FileUtilTest.class.getResourceAsStream("/1.txt");
? ? ? ? if (inputStream == null) {
? ? ? ? ? ? System.out.println("資源未找到!");
? ? ? ? ? ? return;
? ? ? ? }

? ? ? ? byte[] bytes = IoUtil.readBytes(inputStream);
? ? ? ? System.out.println("bytes.length=" + bytes.length);

? ? ? ? // 確保關閉輸入流
? ? ? ? IoUtil.close(inputStream);
? ? }
}
總結
方法一適用于你需要獲得實際的文件系統路徑的情況。
方法二更為推薦,尤其是在處理資源文件時,因為它避免了與操作系統相關的路徑問題,并且能夠很好地處理打包到JAR中的情況。
根據你的具體情況選擇合適的方法進行調整即可解決問題。如果1.txt文件是作為測試資源的一部分,請確保它位于src/test/resources/目錄下,并且已經被正確地包含在構建路徑中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78185.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78185.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78185.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++】二叉樹進階面試題

根據二叉樹創建字符串 重點是要注意括號省略問題,分為以下情況: 1.左字樹為空,右子樹不為空,左邊括號保留 2.左右子樹都為空,括號都不保留 3。左子樹不為空,右子樹為空,右邊括號不保留 如果根節…

RSUniVLM論文精讀

一些收獲: 1. 發現這篇文章的table1中,有CDChat ChangeChat Change-Agent等模型,也許用得上。等會看看有沒有源代碼。 摘要:RSVLMs在遙感圖像理解任務中取得了很大的進展。盡管在多模態推理和多輪對話中表現良好,現有模…

低空AI系統的合規化與標準化演進路徑

隨著AI無人機集群逐步參與城市空域治理、物流服務與公共安全作業,其系統行為不再是“技術封閉域”,而需接受法規監管、責任評估與接口協同的多方審查。如何將AI集群系統推向標準化、可接入、可審計的合規體系,成為未來空中交通演進的關鍵。本…

【金倉數據庫征文】從云計算到區塊鏈:金倉數據庫的顛覆性創新之路

目錄 一、引言 二、金倉數據庫概述 2.1 金倉數據庫的背景 2.2 核心技術特點 2.3 行業應用案例 三、金倉數據庫的產品優化提案 3.1 性能優化 3.1.1 查詢優化 3.1.2 索引優化 3.1.3 緩存優化 3.2 可擴展性優化 3.2.1 水平擴展與分區設計 3.2.2 負載均衡與讀寫分離 …

致遠oa部署

文章目錄 環境搭建項目構建 僅供學習使用 環境搭建 準備項目: https://pan.quark.cn/s/04a166575e94 https://pan.xunlei.com/s/VOOc1c9dBdLIuU8KKiqDa68NA1?pwdmybd# 官方文檔: https://open.seeyoncloud.com/v5devCTP/ 安裝時 mysql 數據庫可能出現字符集設置…

移遠通信智能模組助力東成“無邊界智能割草機器人“閃耀歐美市場

2025年4月21日,移遠通信宣布,旗下SC206E-EM智能模組已成功應用于江蘇東成電動工具有限公司旗下的DCK TERRAINA無邊界智能割草機器人。 這款智能模組高度集成計算、通信、定位等多元能力,以小型化、低功耗、實時性強和低成本等綜合優勢&#…

100.HTB-Meow

學習成果 在第一層,您將獲得網絡安全滲透測試領域的基本技能。您將首先學習如何匿名連接到各種服務,例如 FTP、SMB、Telnet、Rsync 和 RDP。接下來,您將發現 Nmap 的強大功能,Nmap 是一個有價值的工具,用于識別目標系統…

大廠面試-redis

前言 本章內容來自B站黑馬程序員java大廠面試題和小林coding 博主學習筆記,如果有不對的地方,海涵。 如果這篇文章對你有幫助,可以點點關注,點點贊,謝謝你! 1.redis的使用場景 1.1 緩存 緩存穿透 在布…

【含文檔+PPT+源碼】基于SpringBoot+vue的疫苗接種系統的設計與實現

項目介紹 本課程演示的是一款 基于SpringBootvue的疫苗接種系統的設計與實現,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系…

【Pandas】pandas DataFrame dot

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于執行 DataFrame 與另一個對象(如 DataFrame、Series 或標量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于執行 DataFrame 與另一個對象&…

Windows上Tomcat 11手動啟動startup.bat關閉shutdown.bat

發現tomcat11無法手動雙擊startup.bat和shutdown.bat進行開啟和關閉。雙擊startup.bat命令窗口一閃而過就是啟動失敗了,正常啟動成功是cmd命令窗口有全副的執行輸出且不關閉窗口。 解決方法如下:主要更改一個tomcat安裝目錄下的/conf/server.xml配置 1.…

7.9 Python+Click實戰:5步打造高效的GitHub監控CLI工具

Python+Click實戰:5步打造高效的GitHub監控CLI工具 GitHub Sentinel Agent 命令行界面開發實戰 關鍵詞:CLI 開發實踐、Click 框架、API 集成、命令行參數解析、錯誤處理機制 1. 命令行界面技術選型與架構設計 GitHub Sentinel 采用 Click + Requests 技術棧構建 CLI 工具,…

安全框架概述

Java中的安全框架通常是指解決Web應用安全問題的框架,如果開發Web應用時沒有使用安全框架,開發者需要自行編寫代碼增加Web應用安全性。自行實現Web應用的安全性并不容易,需要考慮不同的認證和授權機制、網絡關鍵數據傳輸加密等多方面的問題&a…

配置 C/C++ 語言智能感知(IntelliSense)的 c_cpp_properties.json 文件內容

配置 C/C 語言智能感知(IntelliSense)的 c_cpp_properties.json 文件內容 {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/opt/ros/humble/include/**&quo…

【安全掃描器原理】網絡掃描算法

【安全掃描器原理】網絡掃描算法 1.非順序掃描2.高速掃描 & 分布式掃描3.服務掃描 & 指紋掃描 1.非順序掃描 參考已有的掃描器,會發現幾乎所有的掃描器都無一例外地使用增序掃描,即對所掃描的端口自小到大依次掃描,殊不知&#xff0…

理解歐拉公式

1. 歐拉公式中的符號 歐拉公式 e i x cos ? x i sin ? x e^{ix}\cos xi\sin x eixcosxisinx當 x π x \pi xπ時 e i π 1 0 / / 歐拉恒等式 e^{i\:\pi}10 //歐拉恒等式 eiπ10//歐拉恒等式 e e e:自然對數的底 i i i:虛數, i 2 ? 1 i^2 -1 i2?1 cos…

HTML郵件背景圖兼容 Outlook

在 HTML 郵件中設置背景圖片時,Outlook(尤其是桌面版的 Outlook for Windows)經常不會正確顯示背景圖,這是因為outlook 是使用 Word 作為郵件渲染引擎,而不是標準的 HTML/CSS 渲染方式。 推薦的解決方案:使…

杰理ac792開發板按鍵不起效果

按鍵想要起效果需要把UI給注釋掉,排查了半天

Kubernetes 常用運維命令整理

目錄 Kubernetes 常用運維命令整理一、集群管理二、Pod 和容器管理三、Deployment 和應用管理四、Service 和網絡管理五、存儲管理六、ConfigMap 和 Secret 管理七、資源使用與監控八、調度和容錯九、Role 和權限管理十、清理資源 總結 Kubernetes 常用運維命令整理 Kubernete…

在 Debian 12 中恢復被刪除的 smb.conf 配置文件

https://forum.ubuntu.com.cn/viewtopic.php?t494763 本文結合ai輸出,內容中有些錯誤,但確實解決了我的問題,我采取保留完整輸出的方式摘錄。 在 Debian 12 中恢復被刪除的 smb.conf 配置文件,需結合 dpkg 和 ucf(Upd…