绝想首页

今天的两个问题:文件路径与中文编码

马亮 [感伤] 2013-04-03 08:34:08 星期三 晴天 查看:165 回复:0 发消息给作者

第一、文件路径

做Java Web开发,很可能需要在服务启动的时候读取配置文件,这个配置文件的路径究竟是什么,却很难说的清楚。这里只是对方法做一点总结

比如,在Tomcat上部署的某个网络应用app,那么这个应用的目录就是%Tomcat_Home%/webapps/app。

通常来说,app内使用的配置文件都放在了%Tomcat_Home%/webapps/app/WEB-INF/classes这个目录下面,假设,这个目录下就有一个config.xml。

那么相应的,可以为config.xml在代码中定义一个常量

final static String CONFIG_PATH="/config.xml";

在需要读取config.xml的时候,推荐使用方法:

this.getClass().getResourceAsStream(CONFIG_FILE);

这样,就可以读到config.xml文件了。

但还有另外的一种情况,就是要写配置文件。写文件的话,getResourceAsStream返回的是InputStream,所以这个时候就要通过其他的方法来解决。

我采用的方法是:

    OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream(
      new File(this.getClass().getResource(CONFIG_FILE).toURI())),"UTF-8");

getResource方法返回的是一个URL对象,URL对象有方法getPath可以获取文件的路径,起初我就是用了这个方法来读文件,但是失败了。因为getPath返回的路径字符串是被转义过的。

--------------------------------我是分割线--------------------------------

第二、中文编码

想要避免中文码,就要保证各个环节采用一致的编码。如果XML和中文搀和到了一起,就采用UTF-8来编码吧。

在JSP里面,要记得设置pageEncoding

在Tomcat的server.xml中,要记得为Connector配置URIEncoding属性

在Servlet中,如果想通过response对象来写的话,切记切记,一定是要在response.getWriter()或者response.getOutputStream()之前进行编码的设置:response.setCharacterEncoding("utf-8").

另外,在写文件的时候,尤其是写XML,个人的经验是尽量不要用FileWriter,最好是使用OutputStreamWriter。


类别:开发手札 查看评论
顶一下(35 写日记 1240693 224297
分享排行

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备2023001011号-3   京公网安备11010802011908号

客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com