java怎么读取文件_在Web工程中,普通Java类如何读文件

本文介绍了在Web工程中,如何在普通Java类中读取文件。当在Servlet中,可以通过ServletContext的getRealPath方法获取文件实际路径。而在普通的Java类中,可以使用Class的getResourceAsStream或ClassLoader的getResourceAsStream方法读取src目录下或包目录下的文件。示例代码展示了两种不同的读取方式。

我们在以前讨论过在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目录下的文件

①文件目录

7d2149ee0056d3ab3bbb9c5d07c7583c.png

②读取示例代码:

packagecom.util;importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;public classJdbcUtils {public static void readFile1() throwsIOException {//通过class类的getResourceAsStream方法来进行读取jdbc1.properties,它读的是当前类所在的目录即WEB-INF/classes/com/util

InputStream in = JdbcUtils.class.getResourceAsStream("jdbc1.properties");

Properties prop= newProperties();

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的包目录下的文件

①文件目录

a42c390e5a810918e2abcc7fc20a6058.png

②读取示例代码:

packagecom.util;importjava.io.IOException;importjava.io.InputStream;importjava.util.Properties;public classJdbcUtils {public static void readFile2() throwsIOException {//通过类装载器来进行读取jdbc2.properties(文件不宜不过大,因为是通过加载类的方式去读),它读取的是目录是WEB-INF/classes

InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc2.properties");

Properties prop= newProperties();

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类读取文件的方式描述完毕,有不足的地方,希望大家多多提意见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值