`
zhyiwww
  • 浏览: 90055 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

就读取Properties文件问题回复itVincent

阅读更多

itVincent , 非常感谢您的回复.看到您的回复,我就作了一下测试.<!----><o:p>

我的测试代码如下:<o:p>

              //InputStream in=LoginAction.class.getClassLoader().getResourceAsStream("com.yourcompany.struts.config.properties");<o:p>

              InputStream in=LoginAction.class.getClassLoader().getResourceAsStream("com//yourcompany//struts//config.properties");<o:p>

              <o:p> </o:p>

              System.out.println("properties  in  is  :   "+in);<o:p>

              Properties  p=new Properties();<o:p>

              try {<o:p>

                     p.load(in);<o:p>

                     String h=p.getProperty("JAVA_HOME");<o:p>

                     System.out.println("JAVA_HOME   :  --  "+h);   <o:p>

              } catch (IOException e1) {<o:p>

                     e1.printStackTrace();<o:p>

              }<o:p>

<o:p> </o:p>

我是在一个 action 中写的这段代码 .<o:p>

执行后的结果如下:(错误)<o:p>

properties  in  is  :   null<o:p>

2006-10-24 20:36:59 org.apache.struts.action.RequestProcessor processExc<o:p>

警告 : Unhandled Exception thrown: class java.lang.NullPointerException<o:p>

<o:p> </o:p>

页面的错误是:<o:p>

message <o:p>

<o:p> </o:p>

description The server encountered an internal error () that prevented it from fulfilling this request.<o:p>

<o:p> </o:p>

exception <o:p>

<o:p> </o:p>

javax.servlet.ServletException<o:p>

       org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)<o:p>

       org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)<o:p>

       org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)<o:p>

       org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)<o:p>

       org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<o:p>

       javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<o:p>

       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<o:p>

<o:p> </o:p>

<o:p> </o:p>

root cause <o:p>

<o:p> </o:p>

java.lang.NullPointerException<o:p>

       java.util.Properties$LineReader.readLine(Properties.java:365)<o:p>

       java.util.Properties.load(Properties.java:293)<o:p>

       com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:134)<o:p>

       org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)<o:p>

       org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)<o:p>

       org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)<o:p>

       org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)<o:p>

       javax.servlet.http.HttpServlet.service(HttpServlet.java:709)<o:p>

       javax.servlet.http.HttpServlet.service(HttpServlet.java:802)<o:p>

<o:p> </o:p>

<o:p> </o:p>

note The full stack trace of the root cause is available in the Apache Tomcat/<!----> logs.<o:p>

<o:p> </o:p>

       然后我又作了如下的测试:<o:p>

              InputStream in1=LoginAction.class.getClassLoader().getResourceAsStream("config.properties");<o:p>

              <o:p> </o:p>

              System.out.println("properties  in  is  :   "+in1);<o:p>

              Properties  p1=new Properties();<o:p>

              try {<o:p>

                     p1.load(in1);<o:p>

                     String h1=p1.getProperty("JAVA_HOME");<o:p>

                     System.out.println("JAVA_HOME   :  --  "+h1);<o:p>

              } catch (IOException e1) {<o:p>

                     // TODO Auto-generated catch block<o:p>

                     e1.printStackTrace();<o:p>

              }<o:p>

执行后的结果如下:(正确)<o:p>

properties  in  is  :   java.io.ByteArrayInputStream@257b34<o:p>

JAVA_HOME   :  --  c:jdk<o:p>

xml file  url  is  :  file:/D:/jakarta-tomcat-/webapps/StrutsDemo/WEB-INF/<o:p>

classes/config.xml<o:p>

inputStream of the xml file  is  :  java.io.BufferedInputStream@ca5bff<o:p>

reader   :   org.dom4j.io.SAXReader@1cd3dd7<o:p>

document doc  is  :  org.dom4j.tree.DefaultDocument@09 [Document: name null<o:p>

]<o:p>

action  document  is  :  org.dom4j.tree.DefaultDocument@09 [Document: name<o:p>

null]<o:p>

note  List is : 1<o:p>

java home  node  is  :  org.dom4j.tree.DefaultElement@f [Element: <java att<o:p>

ributes: []/>]<o:p>

the value of the java node  is  :  c:\jdk<o:p>

<o:p> </o:p>

两次的结果不同点的分析: <o:p> </o:p>

       (主要看蓝色的代码部分,文件的存放位置的不同) <o:p> </o:p>

       第一种方法,配置文件在 WEB-INF/classes/ com/yourcompany/struts/config.properties 目录下放着。也就是在包目录下。 <o:p> </o:p>

       第二种方法,配置文件在 WEB-INF/classes/ 目录下存放。也就是根目录下。 <o:p> </o:p>

       所以如果用第二种方法来读第一种配置文件,就会出错。 <o:p> </o:p>

<o:p> 
--------------------------------------------------------------------------------------------------------------
以上是我的个人见解,欢迎批评指正.zhyiwww@163.com</o:p>



zhyiwww 2006-10-24 21:03 发表评论
分享到:
评论

相关推荐

    Python实现读取Properties配置文件的方法

    本篇文章将详细探讨如何通过Python来读取并解析`.properties`配置文件。 首先,了解`.properties`文件的格式。这种文件通常用于存储配置信息,其中键值对以等号`=`分隔,每一行代表一个键值对,注释以`#`或`!`开始...

    java 读取properties文件代码

    读取Properties文件是Java开发中的常见操作,特别是在需要根据配置文件动态改变程序行为的时候。下面我们将详细探讨如何在Java中读取Properties文件。 首先,你需要确保你的项目中包含了一个Properties文件,比如`...

    读取properties文件返回map

    本篇将详细讲解如何在Java中读取`properties`文件并将其内容转换为`Map`对象。 1. **properties文件结构** `properties`文件的结构非常简单,每行代表一个键值对,键和值之间用等号`=`或冒号`:`分隔。例如: ``` ...

    properties文件读写

    properties文件读写操作

    读取properties文件内容

    ConfigFile configfile = ConfigFile.getInstance("ipConfig123.properties"); String ip = configfile.getkeyvalue("ip"); 可以取出ipConfig123.properties 文件中IP的内容

    java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

    总结一下,处理Java中的Properties文件读写时,需要注意文件路径的准确性、文件的读写权限以及缓存问题。通过以上方法,应该能够有效解决描述中提到的问题。对于提供的"新建文本文档.txt",虽然不是Properties文件,...

    java读写properties配置文件

    ### Java读写Properties配置文件详解 #### 一、引言 在Java开发中,`Properties`类被广泛用于处理各种类型的配置文件。这些文件通常包含了应用程序运行时所需的配置信息,如数据库连接信息、系统参数等。`...

    读取properties返回map并写入文件

    本篇文章将详细讲解如何读取.properties文件,将其内容转化为Map对象,以及如何将这个Map对象写回到新的文件中。 首先,我们需要了解什么是.properties文件。这是一种文本格式的文件,用于存储键值对,其中每个键和...

    properties文件的读取

    `properties`文件的读取是Java开发中的常见操作,尤其在处理配置、国际化(i18n)或持久化数据时。 在Java中,我们使用`java.util.Properties`类来处理`properties`文件。以下是一个简单的`properties`文件读取的...

    SSM 读取properties文件

    "SSM 读取properties文件"这个话题聚焦于如何在项目中有效地读取和使用这些配置文件。properties文件通常用于存储应用程序的配置参数,如数据库连接信息、服务器端口、邮件服务设置等,使得这些关键信息能够独立于...

    读取properties文件工具类

    这个工具类可能会使用`java.util.Properties`类和`java.io.FileInputStream`或`java.io.FileOutputStream`来读写文件。 3. **使用工具类读取.properties文件** 使用工具类读取`.properties`文件的步骤如下: 1. ...

    Properties 文件比较工具

    `diffProperties.java`文件很可能是这个工具的主要实现部分,它可能包含了读取两个properties文件,比较其内容并显示差异数目的逻辑。在Java中,我们可以使用`Properties`类的`entrySet()`方法获取所有键值对,然后...

    excel与properties文件相互转换

    - **Java**:Apache POI库可以帮助读写Excel文件,Java的内置`Properties`类可以处理Properties文件。 - **Python**:`openpyxl`库处理Excel文件,`configparser`模块处理Properties文件。 - **Python pandas**:...

    怎样读取properties文件内容

    ### 如何使用Java读取properties文件内容 在Java开发中,`properties`文件是一种非常常见的配置文件格式,它主要用于存储程序的各种配置信息。通过这种方式,可以实现程序与配置的分离,便于维护和调整。本文将详细...

    java完美读取properties文件

    本篇文章将详细讲解如何在Java中“完美”地读取`properties`文件。 首先,我们需要了解`properties`文件的基本结构。它是一个文本文件,其中键值对以`key=value`的形式存储,每一行代表一个键值对,注释以`#`或`!`...

    写入properties文件时间并且读出时间

    本示例着重介绍如何将时间写入`properties`文件并读取出来。 首先,我们需要了解`java.util.Properties`类,它是Java标准库中处理`properties`文件的核心类。它提供了加载、存储、设置和获取属性的方法。下面将详细...

    java实现properties文件读取

    本篇将深入探讨如何使用Java来实现Properties文件的读取。 首先,我们需要了解Properties类在Java中的作用。`java.util.Properties`是Java提供的一个类,它继承了`Hashtable`,主要用于处理属性列表(键/值对)。...

    读取.properties文件

    在Java编程中,读取`.properties`文件是一个常见的任务,这些文件通常用于存储配置信息,如数据库连接字符串、系统参数等。`.properties`文件是一种基于键值对的文本格式,易于理解和编辑。在这个场景中,我们将探讨...

    java properties文件中文转化

    然而,由于历史原因,Java Properties文件在处理中文字符时可能会遇到一些问题,因为早期的properties格式不支持Unicode,导致中文字符无法正确显示或保存。 这篇名为“Java Properties文件中文转化”的博文主要...

    JAVA读取properties文件的值

    在处理`.properties`文件时,可能会遇到文件找不到、读写权限不足等问题。因此,需要适当地捕获和处理`IOException`。 ### 8. 使用`@ConfigurationProperties` Spring框架提供了一种更高级的方式来绑定`....

Global site tag (gtag.js) - Google Analytics