在Web工程中,普通Java類如何讀文件


   我們在以前討論過在Web工程不能采用Java工程原先的讀取方式,即創建一個文件流(FileInputStream)並給出一個文件目錄(從src開始找一直找到你要讀取文件的目錄),這種的方式是不可行的。假如我們是在一個Servlet對象中取讀取文件的話,我們就可以獲取到ServletContext對象,然后通過getRealPath方法獲取文件的實際路徑,進而取創建文件流對象來操作文件,具體代碼如下所示:

//獲取文件的真實路徑
 String filePath = this.getServletContext().getRealPath("/WEB-INF/classes/com/servlet/jdbc3.properties");
 //構建流對象
 FileInputStream fis = new FileInputStream(filePath);

   如果是在一個普通的Java類文件中,我們有時候也要它來操作文件,比如我們自己封裝的DBUtils,里面需要從配置文件中讀取數據庫的相關配置信息,用戶名、密碼等,但是,它是不能獲取到ServletContext對象的,也許有的朋友可能會想,你傳入一個ServletContext對象進去不就可以了。但是這樣做的話就不太合理,因為WEB層就侵入到了數據訪問層,就會耦合在一起,不符合軟件設計高內聚,低耦合的思想。所以這種方式是不推薦的,那么這種方式不行,那該怎么辦呢?所以,我們可以通過下面的方式進行讀取文件,來解決這一個問題。

1.讀取src目錄下的文件

①文件目錄

②讀取示例代碼:

package com.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JdbcUtils {
    public static void readFile1() throws IOException {
        // 通過class類的getResourceAsStream方法來進行讀取jdbc1.properties,它讀的是當前類所在的目錄即WEB-INF/classes/com/util
        InputStream in = JdbcUtils.class.getResourceAsStream("jdbc1.properties");
        Properties prop = new Properties();
        prop.load(in);
        // 從控制台列出prop里面的信息
        prop.list(System.out);
     in.close(); } }

③運行結果:

-- listing properties --

jdbc.driver_class=oracle.jdbc.driver.OracleDriver
jdbc.connection.username=root
jdbc.connection.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.connection.password=root

 

2.讀取src的包目錄下的文件

①文件目錄

②讀取示例代碼:

package com.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JdbcUtils {
    public static void readFile2() throws IOException {
        // 通過類裝載器來進行讀取jdbc2.properties(文件不宜不過大,因為是通過加載類的方式去讀),它讀取的是目錄是WEB-INF/classes
        InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc2.properties");
        Properties prop = new Properties();
        prop.load(in);
        // 從控制台列出prop里面的信息
        prop.list(System.out);
     in.close(); } }

③運行結果:

-- listing properties --
jdbc.driver_class=oracle.jdbc.driver.OracleDriver
jdbc.connection.username=root
jdbc.connection.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.connection.password=root

至此在web中普通Java類讀取文件的方式描述完畢,有不足的地方,希望大家多多提意見!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM