小編給大家分享一下java如何讀取文件路徑空格、"+"和中文的處理方法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
站在用戶的角度思考問題,與客戶深入溝通,找到廬江網(wǎng)站設(shè)計(jì)與廬江網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋廬江地區(qū)。
有時(shí)候在java代碼中讀取文件,如果文件所在路徑包含空格、”+“號(hào)或者是中文的時(shí)候,由于這些特殊的字符會(huì)被進(jìn)行編碼轉(zhuǎn)譯,所以就會(huì)報(bào)沒有發(fā)現(xiàn)文件的錯(cuò)誤,那么遇到這種錯(cuò)誤,我們就要把編碼過后的路徑進(jìn)行解碼,這樣才能正確的找到文件。主要的解決方法有一下三種方法:
解決方法
1、替換法
比如文件路徑如果存在空格,那么會(huì)被轉(zhuǎn)譯成“%20”,那么就可以利用字符串替換,把“%20”傳化成空格,這樣就能正確的找到文件了。這是這種如此暴力,低級(jí)的處理方法,一般有經(jīng)驗(yàn)的開發(fā)人員都不會(huì)采用吧?
2、使用URLDecoder.decode(str,enc)進(jìn)行解碼
如果空格、中文被轉(zhuǎn)譯過后,可以使用URLDecoder.decode方法進(jìn)行解碼,但是這種方法對(duì)于路徑中包含“+”號(hào)并不能進(jìn)行正確解碼,因?yàn)閁RLDecoder.decode方法內(nèi)部如果發(fā)現(xiàn)是加號(hào),將會(huì)將其轉(zhuǎn)成空格:
3、萬能方法,使用toURI().getPath()
toURI()會(huì)跟自己的規(guī)則對(duì)字符串進(jìn)行編碼,然后又能自動(dòng)解碼,所以不用自己去關(guān)心這些事情,可以自行看下它的源碼。
演示:
web項(xiàng)目部署在一個(gè)tomcat中,路徑為:”D:\Program Files\java\apache-tomcat-6.0.26”
1、字符串包含空格:
從截圖中可以看到,路徑存在的空格已經(jīng)被轉(zhuǎn)成“%20”,如果不對(duì)這包含空格的路徑進(jìn)行解碼,那么直接讀取文件是獲取不到的;如果使用了以上第二、第三種方法,則能正確獲取到文件。
2、路徑中包含“+”
從上圖可以看到,如果路徑中包含“+”號(hào),那么第二種方法就失效了,但是第三種方法還是有效。所以平時(shí)使用最好是使用第三種方法比較好。
1.SpringMVC,Spring Web MVC是一種基于Java的實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架。2.Shiro,Apache Shiro是Java的一個(gè)安全框架。3.Mybatis,MyBatis 是支持普通 SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架。4.Dubbo,Dubbo是一個(gè)分布式服務(wù)框架。5.Maven,Maven是個(gè)項(xiàng)目管理和構(gòu)建自動(dòng)化工具。6.RabbitMQ,RabbitMQ是用Erlang實(shí)現(xiàn)的一個(gè)高并發(fā)高可靠AMQP消息隊(duì)列服務(wù)器。7.Ehcache,EhCache 是一個(gè)純Java的進(jìn)程內(nèi)緩存框架。
看完了這篇文章,相信你對(duì)“java如何讀取文件路徑空格、"+"和中文的處理方法”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章名稱:java如何讀取文件路徑空格、"+"和中文的處理方法
網(wǎng)頁(yè)鏈接:http://aaarwkj.com/article14/gjdhge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站導(dǎo)航、企業(yè)網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)