java代碼和spring框架讀取xml和properties文件


1.java文件讀取properties文件

 Properties props = new Properties();
          try {
        //資源文件存放在類文件的根目錄下。即是放在src下面。則不需要寫路
      //徑,此時是放在file文件夾下
    props.load(getClass().getClassLoader().getResourceAsStream(
             "file/user.properties"));
        //當資源文件中有中文的時候可以采用下面的編碼轉化方法來讀取。
        //然后直接讀取props.getProperty("name");
           System.out.println(new String(props.getProperty("name").getBytes(
             "ISO-8859-1"), "GBK"));
          } catch (UnsupportedEncodingException e) {
           e.printStackTrace();
          } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
          }

2.java讀取xml文件

try
        {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = factory.newDocumentBuilder();
            Document doc = db.parse(new File("d://asp-search-config.xml"));
            Element elmtInfo = doc.getDocumentElement();
            NodeList nodes = elmtInfo.getChildNodes();
            int m = 1;
            System.out.println(nodes.getLength());
            for (int i = 0; i < nodes.getLength(); i++)
            {
                Node result = nodes.item(i);
                System.out.println(result.getNodeType()+"----"+result.getNodeName());
                if (result.getNodeType() == Node.ELEMENT_NODE && result.getNodeName().equals("index-file"))
                {
                    NodeList ns = result.getChildNodes();

                    for (int j = 0; j < ns.getLength(); j++)
                    {
                        Node record = ns.item(j);
                        System.out.println(record.getNodeType()+"@@@@"+record.getNodeName());
                        if (record.getNodeType() == Node.ELEMENT_NODE && record.getNodeName().equals("path"))
                        {
                            System.out.println(m + ": " + record.getTextContent());
                            m++;
                        }
                    }
                }
            }
        }
        catch (ParserConfigurationException e)
        {
            e.printStackTrace();
        }
        catch (SAXException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }

第二種方法:

 // 使用了dom4j解析xml
        // 讀取目錄下用來測試的*.xml文件,取得xml主內容
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("d://asp-search-config.xml").getDocument();
        int i = 1;
        // 遍歷文檔根節點(wuxialist)下的子節點列表,即txtbook節點的集合
     //document.getRootElement()獲取根節點asp-search-config
for(Element txtbook : (List<Element>)document.getRootElement().elements()){ //取得txtbook節點下的name節點的內容 System.out.println(i+"."+txtbook.element("path").getText()); }

3.運用spring讀取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直接目錄下,或者寫明絕對路徑,否則就會拋出找不到文件的異常。

4.運用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());

5.判斷名字為name的cookie是否存在,存在則得到該cookie的值,不存在則創建出值為“程序員”的cookie

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = response.getWriter();
            Cookie[] cookies = request.getCookies();
            boolean flag = false ;
            if (cookies != null) {
                for (int i = 0; i < cookies.length; i++) {
                    Cookie cookie = cookies[i];
                    if (cookie.getName().equals("name")) {
                        out.print("<h2>exist , "+URLDecoder.decode(cookie.getValue(),"utf-8")+"</h2>");
                        flag = true ;
                        break;
                    }
                    if (!flag) {
                        Cookie cookieAdd = new Cookie("name", URLEncoder.encode("程序員","utf-8"));
                        response.addCookie(cookieAdd);
                        out.print("<h2>not exist , create successfully</h2>");
                    }
                    }
                }else{
                    Cookie cookieAdd = new Cookie("name", URLEncoder.encode("程序員","utf-8"));
                    response.addCookie(cookieAdd);
                    out.print("<h2>no one  exist,create successfully</h2>");
                }
            out.close();
    }

 


免責聲明!

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



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