中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java讀寫文件有哪幾種方式

發布時間:2021-10-14 16:47:13 來源:億速云 閱讀:127 作者:柒染 欄目:編程語言

java讀寫文件有哪幾種方式,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

  java讀取文件的兩種方法:java.io和java.lang.ClassLoader

  // java.io:

  File file = new File("...");

  FileInputStream fis = new FileInputStream("...");

  FileReader fr = new FileReader("...");

  //ClassLoader:

  ClassLoader loader = XXXClass.class.getClassLoader();

  ClassLoader loader2 = Thread.currentThread().getContextClassLoader();

  URL url = loader.getResource("...");

  File file = new File(url.getFile());

  InputStream input = loader.getResourceAsStream("...");

  java.io 包中的類總是根據當前用戶目錄來分析相對路徑名,也就是說相對路徑是否好使,取決于 user.dir 的值。系統屬性 user.dir 是 JVM 啟動的時候設置的,通常是 Java 虛擬機的調用目錄,即執行 java 命令所在的目錄。

  對于 tomcat/jboss 容器,user.dir 是 %home/bin%/ 目錄,因為這個目錄就是我們啟動 web 容器的地方

  在 eclipse 中運行程序的時候,eclipse 會將 user.dir 的值設置為工程的根目錄

  用戶目錄可以使用 System.getProperty("user.dir") 來查看

  所以說,使用 java.io 讀取文件,無論是相對路徑,還是絕對路徑都不是好的做法,能不使用就不要使用(在 JavaEE 中)。

  使用ClassLoader

  Class.getResource() 有 2 種方式,絕對路徑和相對路徑。絕對路徑以 / 開頭,從 classpath 或 jar 包根目錄下開始搜索;

  相對路徑是相對當前 class 所在的目錄,允許使用 .. 或 . 來定位文件。

  ClassLoader.getResource() 只能使用絕對路徑,而且不用以 / 開頭。

  這兩種方式讀取資源文件,不會依賴于 user.dir,也不會依賴于具體部署的環境,是推薦的做法(JavaEE)

  如何選取

  java.io:

  相對于當前用戶目錄的相對路徑讀取;注重與磁盤文件打交道或者純 java project 中使用。

  雖然 ClassLoader 方式更通用,但是如果不是 javaEE 環境,要定位到 classpath 路徑下去讀文件是不合理的。

  java.lang.ClassLoader:

  相對于 classpath 的相對路徑讀取;建議在 javaEE 環境中都使用這種方式。

  通常,ClassLoader 不能讀取太大的文件,它適合讀取 web 項目的那些配置文件,如果需要讀取大文件,還是要用 IO 包下的,可以先通過 ClassLoader 獲取到文件的絕對路徑,然后傳給 File 或者其他對象,用 io 包里的對象去讀取會更好些。

關于java讀寫文件有哪幾種方式問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛阳市| 台北市| 石门县| 浦城县| 北安市| 克什克腾旗| 陕西省| 措勤县| 新巴尔虎左旗| 吉安市| 张北县| 泾川县| 文山县| 岳西县| 承德市| 松阳县| 巧家县| 玉门市| 西吉县| 梁河县| 扬中市| 望城县| 若尔盖县| 凤翔县| 宣威市| 桐梓县| 白玉县| 普格县| 固始县| 缙云县| 太白县| 获嘉县| 平山县| 金堂县| 江源县| 云龙县| 新余市| 余庆县| 新平| 密山市| 宝山区|