在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何讀取 classpath 下的文件

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-10-10 15:02 ? 次閱讀

Java 程序經(jīng)常要讀取配置文件(properties)、圖片(jpg)、文本文件(txt、csv),我們可以使用 上次所講的 InputStream 實現(xiàn)。

public static void main(String[] args) throws Exception {
        String path = "D:config.properties";

        byte[] config = new byte[1024];

        try (InputStream inputStream = new FileInputStream(path)){
            while (inputStream.read(config) != -1) {
                System.out.println(new String(config, "utf-8"));
            }
        }
    }

讀取classpath

java 程序經(jīng)常是部署在 Linux 上的,必然不可能使用 "D:" 這種盤符路徑??偛荒茉陂_發(fā)的時候用 windows 路徑,發(fā)布到 Linux 的時候注釋掉吧?最終,將配置文件放在 java 程序的 resources 下

圖片

  1. 使用 class 處理

class 的 getResourceAsStream() 方法可以返回一個 InputStream。

public void readProperties() {
    InputStream inputStream = this.getClass().getResourceAsStream("/config.properties");
    this.parseInputStream(inputStream);

}

public void parseInputStream(InputStream inputStream) {
    try {
        byte[] config = new byte[1024];
        while (inputStream.read(config) != -1) {
            System.out.println(new String(config, "utf-8"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}

該方法接受一個文件路徑字符串參數(shù),表示文件的路徑,這個路徑有兩種寫法:

以"/"開頭,表示以類路徑為起始目錄。不以"/"開頭,表示相對于當(dāng)前類的相對路徑。

  1. 使用 ClassLoader 處理

ClassLoader 下也是 getResourceAsStream() 方法,這個方法的參數(shù)不能加 /,不然就是找不到文件。

public void readProperties() {
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config.properties");

    this.parseInputStream(inputStream);

}

getResourceAsStream 源碼分析

把 class.getResourceAsStream() 方法上路徑參數(shù)中的 / 拿掉,就會報 java.lang.NullPointerException 異常,沒有找到這個文件。

把 getResourceAsStream() 的源碼打開,就會發(fā)現(xiàn)讀取資源文件路徑的源碼中調(diào)用的居然是 ClassLoader 的 getResource() 方法。

public URL getResource(String name) {
    URL url;
    if (parent != null) {
        url = parent.getResource(name);
    } else {
        url = getBootstrapResource(name);
    }
    if (url == null) {
        url = findResource(name);
    }
    return url;
}

也就是說 class 和 classLoader 讀取文件實際上調(diào)用的是同一個方法。不過在 class.getResourceAsStream() 調(diào)用 getResource 之前會判斷路徑的最前面是否有 /,沒有 / 就會加上包名。

圖片

總結(jié)

在本文中學(xué)習(xí)了如何讀取 classpath 下的文件,以及看了看獲取文件路徑的源碼,用 getResourc() 方法就可以知道讀取文件的路徑是否正確。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11442

    瀏覽量

    212604
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2984

    瀏覽量

    106720
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3819

    瀏覽量

    82310
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    C語言入門教程-讀取文本文件

    讀取文本文件若要讀取一個文件,請使用r模式打開。一般來說,讀取文件時最好不要用fscanf,因為
    發(fā)表于 07-29 11:29 ?2965次閱讀

    xml和YAML文件讀取_源代碼

    《OpenCV3編程入門》書本配套源代碼:xml和YAML文件讀取
    發(fā)表于 06-06 15:20 ?6次下載

    如何讀取本地文件到labview中,獲得文件信息資料下載

    讀取本地文件到labview中,獲得文件信息。
    發(fā)表于 03-27 10:21 ?41次下載

    labview如何讀取excel文件

    本文檔的主要內(nèi)容詳細(xì)介紹的是labview如何讀取excel文件
    發(fā)表于 08-16 08:00 ?200次下載
    labview如何<b class='flag-5'>讀取</b>excel<b class='flag-5'>文件</b>

    如何通過pandas讀取csv文件指定的前幾行?

    今天小編給大家分享一篇Python技術(shù)開發(fā)方面的文章,如何實現(xiàn)pandas讀取csv文件指定的前幾行,喜歡Python開發(fā)的小伙伴下面就隨小編一起來了解一吧。
    發(fā)表于 09-19 17:43 ?16次下載

    LabVIEW讀取兩列txt文件的工程文件免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LabVIEW讀取兩列txt文件的工程文件免費下載。
    發(fā)表于 12-04 15:21 ?63次下載
    LabVIEW<b class='flag-5'>讀取</b>兩列txt<b class='flag-5'>文件</b>的工程<b class='flag-5'>文件</b>免費下載

    python文件讀取的源代碼免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是python文件讀取的源代碼免費下載。
    發(fā)表于 08-07 17:14 ?20次下載
    python<b class='flag-5'>文件</b><b class='flag-5'>讀取</b>的源代碼免費下載

    stm32程序升級SD卡讀取hex文件寫入flash

    stm32程序升級SD卡讀取hex文件寫入flash
    發(fā)表于 11-20 12:36 ?59次下載
    stm32程序升級SD卡<b class='flag-5'>讀取</b>hex<b class='flag-5'>文件</b>寫入flash

    讀取公盤文件方法

    讀取公盤文件方法
    發(fā)表于 11-07 11:27 ?0次下載

    介紹Python中常用的文件讀取方法以及應(yīng)用示例

    ython 文件讀取是 Python 語言中的基本操作之一。在編寫Python 程序時,我們經(jīng)常需要讀取不同的文件,例如文本文件、CSV
    的頭像 發(fā)表于 04-27 09:16 ?1275次閱讀

    PSTViewer軟件如何操作以讀取帶有附件的PST文件

    PST文件 無PST文件大小限制,可無縫讀取任何大小的OutlookPST文件 能夠同時讀取和查看多個PST
    的頭像 發(fā)表于 05-29 09:27 ?6070次閱讀
    PSTViewer軟件如何操作以<b class='flag-5'>讀取</b>帶有附件的PST<b class='flag-5'>文件</b>

    python文件讀取

    文件讀取的步驟: 打開文本文件對象 寫入數(shù)據(jù) 文件讀取一般使用如下三個方法: read([size]) : 從
    的頭像 發(fā)表于 06-21 17:23 ?1491次閱讀
    python<b class='flag-5'>文件</b>的<b class='flag-5'>讀取</b>

    labview讀取解析CAN DBC文件

    labview讀取解析can總線dbc文件
    發(fā)表于 07-03 09:18 ?117次下載

    如何使用Python和pandas庫讀取、寫入文件

    在本文中,我將介紹如何使用 Python 和 pandas 庫讀取、寫入文件。 1、安裝 pip install pandas 2、讀取 import pandas as pd df
    的頭像 發(fā)表于 09-11 17:52 ?1558次閱讀

    如何使用Python讀取寫入Word文件

    01 準(zhǔn)備 Python 是一種通用編程語言,也可以用于處理 Microsoft Word 文件。在本文中,我將向你介紹如何使用 Python 和 python-docx 庫讀取、寫入和操作
    的頭像 發(fā)表于 09-27 17:03 ?2362次閱讀
    主站蜘蛛池模板: 天堂视频在线视频观看2018 | 亚洲国产成人久久一区www | 免费观看视频高清www | 特黄色一级毛片 | 大尺度视频在线观看 | 国产三片高清在线观看 | 傲视影院午夜毛片 | 日韩成人黄色 | 全午夜免费一级毛片 | 在线看黄的网站 | 噜噜噜久久久 | 久操视频免费 | 国产老师的丝袜在线看 | 天天摸夜夜摸夜夜狠狠摸 | 国产成人精品三级 | 五月情视频在线观看 | 婷婷综合五月中文字幕欧美 | 天天操人人射 | 99色在线观看 | 亚洲va久久久噜噜噜久久男同 | 丁香六月婷婷在线 | 高清视频黄色录像免费 | 国产一级免费视频 | 人人揉人人爽五月天视频 | 亚洲三级网址 | 国产精品三级国语在线看 | www.天天射.com| 四虎在线成人免费网站 | 特黄aa级毛片免费视频播放 | 欧美性久久久久 | 亚洲成人综合网站 | 亚洲理论在线 | 夜夜爽天天干 | 国产美女视频一区二区三区 | 日本一卡二卡≡卡四卡精品 | 视频免费在线观看 | 天天拍拍天天爽免费视频 | 免费一日本一级裸片在线观看 | 黄色免费网站在线播放 | 欧美人与牲动交xxxx | 久久精品免费在线观看 |