首页 > 编程知识 正文

java中读取配置文件中的数据(javaweb读取配置文件)

时间:2023-12-17 21:42:41 阅读:316784 作者:WURB

本文目录一览:

Java读取文件的几种方法

方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。缺点:不能在servlet外面应用读取配置信息。

方式二:采用ResourceBundle类读取配置信息,

优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。缺点:只能加载类classes下面的资源文件且只能读取.properties文件。

方式三:采用ClassLoader方式进行读取配置信息

优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息

缺点:只能加载类classes下面的资源文件。

方法4 getResouceAsStream

XmlParserHandler.class.getResourceAsStream 与classloader不同

java 中配置文件路径读取使用FileReader和InputStream区别和用法?

一、按数据来源(去向)分类:

1、是文件: FileInputStream, FileOutputStream, FileReader, FileWriter

2、是byte[]:ByteArrayInputStream, ByteArrayOutputStream

3、是Char[]: CharArrayReader, CharArrayWriter

4、是String: StringBufferInputStream, StringReader, StringWriter

5、网络数据流:InputStream, OutputStream, Reader, Writer

二、按是否格式化输出分:

1、要格式化输出:PrintStream, PrintWriter

三、按是否要缓冲分:

1、要缓冲:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter

四、按数据格式分:

1、二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类

2、纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其所有带Reader, Writer的子类

五、按输入输出分:

1、输入:Reader, InputStream类型的子类

2、输出:Writer, OutputStream类型的子类

六、特殊需要:

1、从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter

2、对象输入输出:ObjectInputStream, ObjectOutputStream

3、进程间通信:PipeInputStream, PipeOutputStream, PipeReader, PipeWriter

4、合并输入:SequenceInputStream

5、更特殊的需要:PushbackInputStream, PushbackReader, LineNumberInputStream, LineNumberReader

决定使用哪个类以及它的构造进程的一般准则如下(不考虑特殊需要):

首先,考虑最原始的数据格式是什么: 原则四

第二,是输入还是输出:原则五

第三,是否需要转换流:原则六第1点

第四,数据来源(去向)是什么:原则一

第五,是否要缓冲:原则三 (特别注明:一定要注意的是readLine()是否有定义,有什么比read, write更特殊的输入或输出方法)

第六,是否要格式化输出:原则二

Java中Inputstream与Reader的区别

Reader支持16位的Unicode字符输出,InputStream支持8位的字符输出。

Reader和InputStream分别是I/O库提供的两套平行独立的等级机构,

InputStream、OutputStream是用来处理8位元的流,

Reader、Writer是用来处理16位元的流。

而在JAVA语言中,byte类型是8位的,char类型是16位的,所以在处理中文的时候需要用Reader和Writer。

值得说明的是,在这两种等级机构下,还有一道桥梁InputStreamReader、OutputStreamWriter负责进行InputStream到Reader的适配和由OutputStream到Writer的适配。

java.io.Reader 和 java.io.InputStream 组成了 Java输入类。Reader 用于读入16位字符,也就是 Unicode编码的字符;而 InputStream 用于读入 ASCII字符和二进制数据。

在 Java中,有不同类型的 Reader 输入流对应于不同的数据源:

FileReader 用于从文件输入;

CharArrayReader 用于从程序中的字符数组输入;

StringReader 用于从程序中的字符串输入;

PipedReader 用于读取从另一个线程中的 PipedWriter 写入管道的数据。

相应的也有不同类型的 InputStream 输入流对应于不同的数据源:FileInputStream,ByteArrayInputStream,StringBufferInputStream,PipedInputStream。另外,还有两种没有对应 Reader 类型的 InputStream 输入流:

Socket 用于套接字;

URLConnection 用于 URL 连接。

这两个类使用 getInputStream() 来读取数据。

相应的,java.io.Writer 和 java.io.OutputStream 也有类似的区别。

java怎样提取配置文件!怎么才能采用ServletContext读取

创建配置文件:

1、在项目的任意地方,右键-》New-》File-》FileName-》输入-》名称.properties(比如:config.properties)

2、访问路径:从根目录开始出发(WebRoot)-WEB-INF-classes-config.properties,(如果有包名,在classes-包名-config.properties)(路径可以直接从本地中项目的路径,找到WEB-INF直接从地址中copy(比如我的本地磁盘保存是这样的:F:课程s2课程s2书上内容Java WebServletTestWebRootWEB-INFclassesconfig.properties))

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

request.setCharacterEncoding("utf-8");

PrintWriter out = response.getWriter();

/************************使用servletContext.getResourceAsStream**************************************/

//实例化ServletContext

ServletContext servletContext=this.getServletContext();

// //获取输入流

// InputStream in=servletContext.getResourceAsStream("\WEB-INF\classes\config.properties");

// Properties p=new Properties();

// //类的装载

// p.load(in);

// //拿到配置文件中userName参数

// out.println(p.getProperty("userName"));

/***************************普通的获取配置文件**************************************/

String path= servletContext.getRealPath(("\WEB-INF\classes\config.properties"));//拿到绝对路径

FileInputStream in=new FileInputStream(path);

Properties p=new Properties();

p.load(in);

out.println(p.get("userName"));

JAVA怎么从配置文件中读取数据

Java有个集合,叫Properties,去查下用法,挺好用的。可以将一个配置文件比如txt中的键值对读入到集合中。

Java中spring读取配置文件的几种方法

Java中spring读取配置文件的几种方法如下:

一、读取xml配置文件

(一)新建一个java bean

package chb.demo.vo;

public class HelloBean {

private String helloWorld;

public String getHelloWorld() {

return helloWorld;

}

public void setHelloWorld(String helloWorld) {

this.helloWorld = helloWorld;

}

}

(二)构造一个配置文件

?xml version="1.0" encoding="UTF-8"?

!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" ""

beans

bean id="helloBean" class="chb.demo.vo.HelloBean"

property name="helloWorld"

valueHello!chb!/value

/property

/bean

/beans

(三)读取xml文件

1.利用ClassPathXmlApplicationContext

ApplicationContext context = new ClassPathXmlApplicationContext("beanConfig.xml");

//这种用法不够灵活,不建议使用。

HelloBean helloBean = (HelloBean)context.getBean("helloBean");

System.out.println(helloBean.getHelloWorld());

2.利用FileSystemResource读取

Resource rs = new FileSystemResource("D:/software/tomcat/webapps/springWebDemo/WEB-INF/classes/beanConfig.xml");

BeanFactory factory = new XmlBeanFactory(rs);

HelloBean helloBean = (HelloBean)factory.getBean("helloBean");

System.out.println(helloBean.getHelloWorld());

值得注意的是:利用FileSystemResource,则配置文件必须放在project直接目录下,或者写明绝对路径,否则就会抛出找不到文件的异常。

二、读取properties配置文件

这里介绍两种技术:利用spring读取properties 文件和利用java.util.Properties读取

(一)利用spring读取properties 文件

我们还利用上面的HelloBean.java文件,构造如下beanConfig.properties文件:

helloBean.class=chb.demo.vo.HelloBean

helloBean.helloWorld=Hello!chb!

属性文件中的"helloBean"名称即是Bean的别名设定,.class用于指定类来源。

然后利用org.springframework.beans.factory.support.PropertiesBeanDefinitionReader来读取属性文件

BeanDefinitionRegistry reg = new DefaultListableBeanFactory();

PropertiesBeanDefinitionReader reader = new PropertiesBeanDefinitionReader(reg);

reader.loadBeanDefinitions(new ClassPathResource("beanConfig.properties"));

BeanFactory factory = (BeanFactory)reg;

HelloBean helloBean = (HelloBean)factory.getBean("helloBean");

System.out.println(helloBean.getHelloWorld());

(二)利用java.util.Properties读取属性文件

比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:

ip=192.168.0.1

port=8080

则,我们可以用如下程序来获得服务器配置信息:

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ipConfig.properties");

Properties p = new Properties();

try {

p.load(inputStream);

} catch (IOException e1) {

e1.printStackTrace();

}

System.out.println("ip:"+p.getProperty("ip")+",port:"+p.getProperty("port"));

三 、用接口类WebApplicationContext来取。

private WebApplicationContext wac;

wac =WebApplicationContextUtils.getRequiredWebApplicationContext(

this.getServletContext());

wac = WebApplicationContextUtils.getWebApplicationContext(

this.getServletContext());

JdbcTemplate jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");

其中,jdbcTemplate为spring配置文件中的一个bean的id值。

这种用法比较灵活,spring配置文件在web中配置启动后,该类会自动去找对应的bean,而不用再去指定配置文件的具体位置。

如何读取配置文件里的配置信息

以JAVA为例:

读取配置文件中数据的具体方法:

1、先在项目中创建一个包(如:config),再创建一个配置文件(如:a.properties),添加配置信息如下:

比如:

name=kaka

age=28

代码如下:

import java.io.IOException; 

import java.io.InputStream; 

import java.util.Properties; 

public class PropertyTest {

 public static void main(String[] args) { 

  PropertyTest loadProp = new PropertyTest(); 

  InputStream in = loadProp.getClass().getResourceAsStream("/config/a.properties"); 

  Properties prop = new Properties(); 

  try {

   prop.load(in); 

  } catch (IOException e) { 

   e.printStackTrace(); 

  } 

  System.out.println(prop.getProperty("name")); 

  System.out.println(prop.getProperty("age"));

 } 

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。