日期:2014-05-20  浏览次数:20706 次

生成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, "");