java中的path類_詳談java中File類getPath()、getAbsolutePath()、getCanonical的區別

簡單看一下描述,例子最重要。

1、getPath():

返回定義時的路徑,(就是你寫什么路徑,他就返回什么路徑)

2、getAbsolutePath():

返回絕對路徑,但不會處理“.”和“..”的情況

3、getCanonicalPath():

返回的是規范化的絕對路徑,相當于將getAbsolutePath()中的“.”和“..”解析成對應的正確的路徑

第一個例子:(使用:“.\\src\\test.txt”一個點路徑)

File file = new File(".\\src\\test.txt");

System.out.println(file.getPath());

System.out.println(file.getAbsolutePath());

System.out.println( file.getCanonicalPath());

結果:

.\src\test.txt

D:\workspace\java_io\.\src\test.txt

D:\workspace\java_io\src\test.txt

第二個例子:(使用:“..\\src\\test.txt”兩個點路徑)

File file = new File("..\\src\\test.txt");

System.out.println(file.getPath());

System.out.println(file.getAbsolutePath());

System.out.println( file.getCanonicalPath());

結果:

..\src\test.txt

D:\workspace\java_io\..\src\test.txt

D:\workspace\src\test.txt 注意這個結果的路徑,與一個點時不一樣;因為他解析了“.”和“..”的情況。

第三個例子:(使用:“D:\\test\\absoluteTest.txt”絕對路徑)

File file = new File("D:\\test\\absoluteTest.txt");

System.out.println(file.getPath());

System.out.println(file.getAbsolutePath());

System.out.println(file.getCanonicalPath());

結果:

D:\test\absoluteTest.txt

D:\test\absoluteTest.txt

D:\test\absoluteTest.txt

結論:

1、當輸入為絕對路徑時,返回的都是絕對路徑。

2、當輸入為相對路徑時:

2.1、getPath()返回的是File構造方法里的路徑,是什么就是什么,不增不減

2.2、getAbsolutePath()返回的其實是user.dir+getPath()的內容,從上面看:D:\workspace\java_io\.\src\test.txt,D:\workspace\java_io\..\src\test.txt,可以得出。

2.3、getCanonicalPath()返回的就是標準的將符號完全解析的路徑

以上這篇詳談java中File類getPath()、getAbsolutePath()、getCanonical的區別就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持聚米學院。

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

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

相關文章

部署站點支持Https訪問的方法

1、申請公鑰和私鑰,放到服務器 2、編輯default配置文件 改為 加上證書路徑 ps:泛域名支持admin.xxx.com、demo.xxx.com等等,而免費的Lets Encrypt僅支持www.xxx.com和xxx.com 整理自www.laravist.com轉載于:https://www.cnblogs.com/lamp01/p/6952464.ht…

.NET Core Onvif協議C#教程系列之XiaoFeng.Onvif組件庫

物聯網IOT大背景下音視頻領域的Onvif 協議在2008年成為全球性的開放接口標準。于是一批開發者涌入該技術領域使用各種編程語言對其改造升級封裝。因為是國際標準,所以規范內容比較多,物聯網領域涉及又廣,所以研究協議是一個很耗時間的一項工作…

php異常處理的深入

引出 如果你調一個類,調用時數據驗證時報了個錯,你會以什么方式返回 數組,布爾值? 數組這個可以帶錯誤原因回來,那布爾值呢? 返回了個 false, 報錯時把錯誤放在類變量里?還是專門用一個獲取錯誤…

C# 跨平臺的支付類庫ICanPay

隨著微軟的開源,越來越多的項目支持跨平臺,但是各種支付平臺提供的類庫,又老又不支持跨平臺,吐槽下,尤其是微信,還有好多坑,于是ICanPay誕生了,今天就來講ICanPay是什么,…

.NET CORE 下收發郵件之 MAILKIT

背景利用代碼發送郵件在工作中還是比較常見的,相信大家都用過SmtpClient來處理發送郵件的操作,不過這個類以及被標記已過時,所以介紹一個微軟推薦的庫MailKit來處理。MailKit開源地址:https://github.com/jstedfast/MailKit需要郵…

【20181026T2】**圖【最小瓶頸路+非旋Treap+啟發式合并】

題面 【錯解】 最大最小?最小生成樹嘛 蛤?還要求和? 點分治? 不可做啊 寫了個MST暴力LCA,30pts,140多行 事后發現30分是給dijkstra的 woc 【正解】 樹上計數問題:①并查集②啟發式合并③點分治 …

java實現關鍵詞云_Java synchronized 關鍵詞詳細說明

Java synchronized 關鍵詞詳細說明外置專業技能點系統進程和進程的定義進程建立方法進程的情況情況變換線程安全的定義synchronized 關鍵詞的幾類使用方法裝飾非靜態數據組員方式synchronized public void sync(){}裝飾靜態數據組員方式synchronized public static void sync()…

損失函數(Loss function) 和 代價函數(Cost function)

1損失函數和代價函數的區別: 損失函數(Loss function):指單個訓練樣本進行預測的結果與實際結果的誤差。 代價函數(Cost function):整個訓練集,所有樣本誤差總和(所有損失函數總和)的平均值。(這一步體現在propagate()…

Hadoop/HDFS命令

Hadoop中文手冊:http://hadoop.apache.org/docs/r1.0.4/cn/commands_manual.html 英文手冊:http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CommandsManual.html Hadoop fs命令 hadoop fs: 該命令可以用于其他文件系統&#x…

《Node.js 入門系列》—— 一些簡單的排錯方法(一)

目錄 TypeError: undefined is not a functionTypeError: Cannot read property xxx of undefined 或者 TypeError: Cannot read property xxx of null檢查變量是未賦值檢查函數是否有返回值檢查變量是否引用了某個對象不存在的屬性檢查調用函數時是否未該傳遞參數俗話說“常在…

內置IOC容器ServiceCollection

.NetCore內置IOC容器ServiceCollection一、IOC介紹IOC:全名(Inversion of Control)-控制反轉IOC意味著我們將對象的創建控制權交給了外部容器,我們不管它是如何創建的,我們只需要知道,當我們想要某個實例時,我們可以直…

java中 有沒有方法將瀏覽器標簽欄去掉_用JS去掉IE窗口的標題欄,工具欄,地址欄...

前言:經常上網的朋友可能會到過這樣一些網站,一進入首頁立刻會彈出一個窗口,或者按一個連接或按鈕彈出,通常在這個窗口里會顯示一些注意事項、版權信息 、警告、歡迎光顧之類的話或者作者想要特別提示的信息。其實制作這樣的頁面效果非常的容…

React+Redux仿Web追書神器

引言 由于 10 月份做的 React Native 項目沒有使用到 Redux 等庫,寫了一段時間想深入學習 React,有個想法想做個 demo 練手下,那時候其實還沒想好要做哪一個類型的,也看了些動漫的,小說閱讀,聚合資源的開源…

【算法】LeetCode算法題-Maximum Subarray

這是悅樂書的第154次更新,第156篇原創 01 看題和準備 今天介紹的是LeetCode算法題中Easy級別的第13題(順位題號是53)。給定一個整數數組nums,找出一個最大和,此和是由數組中索引連續的元素組成,至少包含一個…

windows配置solr5.5.2(不通過tomcat,使用內置jetty)

一、windows下配置solr5.5.2(不通過tomcat,使用內置jetty) 第一步:安裝Jdk1.7 Solr5.5好像只支持Jdk1.7及以上的版本,沒親測,solr6.0是只支持jdk1.8及以上的,下圖為啟動solr時的截圖: 如何在windows環境下配置jdk及驗證…

java起源英文_Abbreviation 英文詞組縮寫(來源:南陽理工大學ACM)java

As we know, we often use a short sequence of characters in place of some words with a very long name. For example, ACM is an abbreviation of “Association for Computing Machinery”. Now we are using an acronymic method to get the abbreviation. An acronym i…

【C# Personal Handbook】運行環境

一、CLR、CLI、CTS、CLS、BCL、FCL簡介CLI(公共語言基礎)CLI是微軟公司向ECMA提交的一份語言和數據格式規范,CLR是目前為止唯一一個公共語言基礎的實現版本。CLI包括了公共類型系統(CTS)、公共中間語言(CIL…

如何完善自己的知識結構

★領域 (本來想用“學科”這個詞,后來覺得“學科”的范疇還是偏小,就改用“領域”)  按照傳統的習慣,通常會把知識歸類到不同的領域(比如:文學、數學、計算機、烹調、等等)。 ◇領…

MATLAB編程與應用系列-關于MATLAB編程入門教程的總體編寫安排

本系列教程來源于出版設計《基于MATLAB編程基礎與典型應用書籍》,如涉及版權問題,請聯系:156204968qq.com。 出版社:人民郵電出版社, 頁數:525。 本系列教程目前基于MATLABR2006a,可能對于更高級…

python語言特性-------python2.7教程學習【廖雪峰版】(一)

開始學習廖雪峰的py2.7教程: 2017年6月5日12:54:28 筆記: 廖雪峰python2.7教程1.用任何編程語言來開發程序,都是為了讓計算機干活。 2.Python是一種相當高級的語言。代碼少還不好?代碼少的代價是運行速度慢。3.用Python可以做什么…