zoukankan      html  css  js  c++  java
  • 关于Java中的路径问题一点小想法

    今天闲来无事,就重新研究了一下Servlet,想着以前读取路径用的方法是:

    先创建一个读取文件的输入流

    public static final String configFile="dbcp.properties";

    InputStream is = new InputStream(new FileInputStream(new File()));

    Properties property = new Properties();

    property.load(is);

    突发奇想,想着试一下用另外一种方法来读取配置文件

    (在此说明一下,项目结构是创建了一个和src同级的res目录,然后文件就保存在该目录下.)

    一开始,我读取文件的路径代码写成了下面:

    InputStream is = JDBCUtiles.class.getClassLoader().getResourceAsStream(res/configFile);

    .........

    后来一运行,就报了一个错误,错误代码如下:

    Exception in thread "main" java.lang.NullPointerException
     at java.util.Properties$LineReader.readLine(Unknown Source)
     at java.util.Properties.load0(Unknown Source)
     at java.util.Properties.load(Unknown Source)
     at com.huangchao.model.JdbcUtiles.init(JdbcUtiles.java:17)
     at com.huangchao.model.Test.main(Test.java:14)

    检查异常信息:空指针异常,就是说我没有读取到文件咯,一看就是文件的路径错误了,所以方法读取不到...

    一一检查.打开WEB-INF下的classes文件夹下的目录结构,才发现:...........................

    dbcp.properties文件被编译到的位置其实就是在根目录下........

    而且在该文件夹下面找不到有res文件夹....

    所以就是说,,,java虚拟机在编译该文件的时候,是忽略了res目录的.

    在eclipse中创建 的res目录只是为了好管理文件...

    正确代码如下:

    public static final String configFile = "dbcp.properties";

    InputStream is = JDBCUtiles.class.getClassLoader().getResourceAsStream(configFile);

    Properties property = new Properties();

    property.load(is);

  • 相关阅读:
    PAT甲级——A1091 Acute Stroke【30】
    PAT甲级——A1090 Highest Price in Supply Chain
    PAT甲级——A1089 Insert or Merge
    PAT甲级——A1088 Rational Arithmetic
    PAT甲级——A1087 All Roads Lead to Rome【30】
    【php中的curl】php中curl的详细解说
    【php中的curl】使用curl完成POST数据给飞信接口
    【php中的curl】php中curl的使用
    【socket】php实现socket
    【socket】用PHP的socket实现客户端到服务端的通信
  • 原文地址:https://www.cnblogs.com/sirab415/p/5709178.html
Copyright © 2011-2022 走看看