文件开头或结尾的垃圾字符

时间:2011-03-10 12:02:18

标签: java jboss

我们目前遇到一些无法重现的文件写入/编码问题。 实际上有两个问题可能有相同的原因:

1)我们有一个应用程序(或同一应用程序的更好的多个实例),它使用速度模板根据用户请求创建一个css文件。但是,在该应用程序的某些实例中(在同一服务器上运行,在相同版本中使用相同的库)会将一些stange字符预先添加到写入文件的CSS字符串中(它不是UTF-8字节顺序标记)。

2)另一个应用程序最近发布了一个附加垃圾字符的Javascript文件(位于EAR中)。大多数情况下,同一个应用程序正确地提供了Javascript文件,但我们无法重现该行为。猜测是写入服务器临时文件夹的文件以某种方式被破坏。

两个应用程序都有一个共同点,即垃圾字符被添加到文件中,因此它可能是相同或类似的原因。

然而,正如我之前所说,我们无法在我们的测试或开发机器上重现这种行为,我们也不知道原因是什么(我们已经检查了设置为UTF-8的文件编码)。

以下是有关该系统的更多信息:

操作系统:Debian GNU / Linux 5.0.4(lenny) JBoss:4.2.3.GA Java:SUn JDK 1.5.0_17-b04

知道可能会发生什么或者我们可以寻找什么?

提前致谢。

编辑:

问题1)的部分代码

...
FileWriter fw;
try
{
  String path = tConfigProperties.getProperty( VELOCITYPATHPARAM );
  fw = new FileWriter( path + VELOCITYFILEPARM );
  fw.write( sw.toString() );//sw is a StringWriter passed to velocity for template processing
  fw.close();
}
catch( IOException e )
{
  //handle exception and display error message
}

问题2)我们的Java代码不能成为问题,因为我们所做的就是在JSP中链接Javascript。

2 个答案:

答案 0 :(得分:1)

我会研究您的代码使用字节缓冲区读取/写入文件的可能性,而不考虑read(byte[])调用返回的值。 (这听起来很基本,但我最近看到了一个问题,这是根本问题。)

答案 1 :(得分:0)

我想我发现问题的原因没有。 1:速度模板也包含这些字符。但是,我们已经检查了这个并且认为不在那里。但是errare humanum est。 :)

问题没有。 2仍然存在,这更不可重复。