我們目前遇到一些我們無法重現的文件寫入/編碼問題。 實際上有兩個問題可能有相同的原因:文件開頭或結尾的垃圾字符
1)我們有一個應用程序(或更好的同一應用程序的多個實例),它使用速度模板來創建用戶請求的css文件。但是,在該應用程序的某些情況下(在同一臺服務器上運行,在相同版本中使用相同的庫)會在寫入該文件的CSS字符串(它不是UTF-8字節順序標記)中添加一些stange字符。
2)另一個應用程序最近發佈了一個Javascript文件(位於EAR中),附加了垃圾字符。大多數時候,同一個應用程序正確地提供該Javascript文件,並且我們無法再現該行爲。猜測會是寫入服務器的臨時文件夾的文件以某種方式被損壞。
這兩個應用程序都有一個共同點,即將垃圾字符添加到文件中,因此可能是相同或相似的原因。但是,正如我之前所說的,我們無法在我們的測試或開發機器上再現這種行爲,並且我們不知道可能是什麼原因(我們已經檢查了文件編碼設置爲UTF- 8)。
下面是一些關於系統的更多信息:
OS:的Debian GNU/Linux的5.0.4(萊尼) JBoss的:4.2.3.GA 的Java:星期日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 。
+1使我再次檢查問題1的輸入。 – Thomas 2011-03-10 13:08:01