java相對路徑,java相對路徑轉絕對路徑

本文目錄一覽:

什麼是java的相對路徑和絕對路徑阿 怎麼訪問相對路徑里的文件和絕對路徑里的文件

1、相對路徑-顧名思義,相對路徑就是相對於當前文件的路徑。網頁中一般表示路徑使用這個方法。

2、絕對路徑-絕對路徑就是你的主頁上的文件或目錄在硬碟上真正的路徑。絕對路徑就是你的主頁上的文件或目錄

“./”:代表目前所在的目錄。

“../”:代表上一層目錄。

以”/”開頭:代表根目錄。

java怎麼獲取文件的相對路徑

一個例子,如果有一個Test文件夾裡面有test.java和hello.txt.如果你想用test.java操作hello.txt

只要在test.java中這樣寫File file=new File(“hello.txt”);//這樣就是相對路徑。如果文件結構是

Test文件夾

… |——test.java

… |——hello.txt

… |——source文件夾

…………….. |———world.txt

如果想在test.java中操作world.txt。只要這樣寫File file=new File(“source/world.txt”);

另外,在web開發中/代表項目文件夾根目錄,當然也有可能代替webapps,區分方法是:如果/開頭的uri是給瀏覽器解析則/代表webapps,如果是給伺服器後台解析,則代表項目文件

java中用相對路徑打開文件。

1、在Java開發工具的project中使用相對路徑

在project中,相對路徑的根目錄是project的根文件夾,在此就是repathtest文件夾了。創建文件的寫法是:

File f = new File(“src/com/lavasoft/res/a.txt”);

File f = new File(“doc/b.txt”);

注意:路徑不以「/」開頭;

脫離了IDE環境,這個寫法就是錯誤的,也並非每個IDE都如此。

2、通過CLASSPATH讀取包內文件

讀取包內文件,使用的路徑一定是相對的classpath路徑,比如a,位於包內,此時可以創建讀取a的位元組流:

InputStream in = ReadFile.class.getResourceAsStream(“/com/lavasoft/res/a.txt”);

有了位元組流,就能讀取到文件內容了。

注意:這裡必須以「/」開頭;

3、看看完整的java中用相對路徑打開文件測試代碼:

package com.lavasoft.test; 

import java.io.*; 

/** 

* Java讀取相對路徑的文件 

*/ 

public class ReadFile { 

        public static void main(String[] args) { 

                readTextA_ByClassPath(); 

                readTextA_ByProjectRelativePath(); 

                readTextB_ByProjectRelativePath(); 

        } 

        /** 

         * 通過工程相對路徑讀取(包內)文件,注意不以「/」開頭 

         */ 

        public static void readTextA_ByProjectRelativePath() { 

                System.out.println(“—————–readTextA_ByProjectRelativePath———————“); 

                File f = new File(“src/com/lavasoft/res/a.txt”); 

                String a = file2String(f, “GBK”); 

                System.out.println(a); 

        } 

        /** 

         * 通過工程相對路徑讀取(包外)文件,注意不以「/」開頭 

         */ 

        public static void readTextB_ByProjectRelativePath() { 

                System.out.println(“—————–readTextB_ByProjectRelativePath———————“); 

                File f = new File(“doc/b.txt”); 

                String b = file2String(f, “GBK”); 

                System.out.println(b); 

        } 

        /** 

         * 通過CLASSPATH讀取包內文件,注意以「/」開頭 

         */ 

        public static void readTextA_ByClassPath() { 

                System.out.println(“—————–readTextA_ByClassPath———————“); 

                InputStream in = ReadFile.class.getResourceAsStream(“/com/lavasoft/res/a.txt”); 

                String a = stream2String(in, “GBK”); 

                System.out.println(a); 

        } 

        /** 

         * 文件轉換為字元串 

         * 

         * @param f             文件 

         * @param charset 文件的字符集 

         * @return 文件內容 

         */ 

        public static String file2String(File f, String charset) { 

                String result = null; 

                try { 

                        result = stream2String(new FileInputStream(f), charset); 

                } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                } 

                return result; 

        } 

        /** 

         * 文件轉換為字元串 

         * 

         * @param in            位元組流 

         * @param charset 文件的字符集 

         * @return 文件內容 

         */ 

        public static String stream2String(InputStream in, String charset) { 

                StringBuffer sb = new StringBuffer(); 

                try { 

                        Reader r = new InputStreamReader(in, charset); 

                        int length = 0; 

                        for (char[] c = new char[1024]; (length = r.read(c)) != -1;) { 

                                sb.append(c, 0, length); 

                        } 

                        r.close(); 

                } catch (UnsupportedEncodingException e) { 

                        e.printStackTrace(); 

                } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                } catch (IOException e) { 

                        e.printStackTrace(); 

                } 

                return sb.toString(); 

        } 

}

原創文章,作者:IPSP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/134705.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IPSP的頭像IPSP
上一篇 2024-10-04 00:07
下一篇 2024-10-04 00:07

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論