当前位置: 代码迷 >> J2EE >> 生成properties文件的有关问题
  详细解决方案

生成properties文件的有关问题

热度:240   发布时间:2016-04-22 02:25:52.0
生成properties文件的问题
Properties p = new Properties();
p.setProperty("sb", sb);
p.setProperty("reportname", reportTitle);
p.setProperty("paramdefault", paramDefault.toString());

try {
PrintStream fw = new PrintStream(new File(request.getSession()
.getServletContext().getRealPath("ebsys/ebfile"),
reportTitle + ".properties"));

p.list(fw);
fw.close();
} catch (IOException e) {
e.printStackTrace();
}


properties文件内容:sb=
  reportname=
  paramdefault=

当写进去的字符串超过一定长度的时候,字符串不全部写进去,以“...”代替
怎么解决?

------解决方案--------------------
Java code
p.setProperty("sb", sb.length()<8 ? sb : sb.substring(0,8)+"...");p.setProperty("reportname", reportname.length()<8 ? reportname : reportname.substring(0,8)+"...");p.setProperty("paramdefault", paramdefault.length()<8 ? paramdefault : paramdefault.substring(0,8)+"...");
------解决方案--------------------
Java code
p.store(fw,"");
------解决方案--------------------
p.list(fw);
这个默认超过40个字符后,行为就和你描述的一样了
------解决方案--------------------
探讨

p.list(fw);
这个默认超过40个字符后,行为就和你描述的一样了

------解决方案--------------------
类似下面的代码你尝试看看
Java code
public static void main(String[] args) throws Exception {    PrintWriter inputStream=new PrintWriter("e:/aa.properties","UTF-8");    Properties properties=new Properties();    properties.setProperty("test", "中国");    properties.list(inputStream);    inputStream.close();    }
------解决方案--------------------
p.setProperty("reportname", reportTitle);
 p.setProperty("paramdefault", paramDefault.toString());

reportTitle和paramDefault.toString()打印出来是乱码么?
如果这里是乱码就转码,然后
Java code
OutputStream out = new FileOutputStream(f);            OutputStreamWriter osw = new OutputStreamWriter(out,"utf-8");            p.setProperty("sb", "是乱码吗");            p.store(osw, "");
  相关解决方案