2013-05-21 71 views
0

我追加和流一堆文件,我要修剪的第一個文件後標題行。 在windows上,以下java代碼添加一個空行,並在記事本++中看到亂碼字符。任何修復/建議?謝謝。閱讀換行字符在Java中

private int updateHeader(byte[] buffer) throws UnsupportedEncodingException { 
     if (first) { 
     return buffer.length; 
     } 
     String s, s2; 
     s = new String(buffer, "UTF-8"); 
     int k = s.indexOf(System.getProperty("line.separator"), 0); 
     s2 = s.substring(k + 1); 
     byte[] buffer2 = s2.getBytes("UTF-8"); 
     System.arraycopy(buffer2, 0, buffer, 0, buffer2.length); 
     return buffer2.length; 
    } 

回答

1

我的猜測是,你應該這樣做:

... 
String separator = System.getProperty("line.separator"); 
int k = s.indexOf(separator, 0); 
s2 = s.substring(k + separator.length()); 
s2 = s2.trim(); 
... 

Windows行分隔符超過1個字符長(CR + LF)與Unix的是基於this LF。另外,如果您跨平臺移動文件,這可能會非常棘手。

編輯我不知道你看到的,因爲我不太有文件,但你可以嘗試微調子,以及如果你看到時髦人物。你確定這些文件是正確的編碼,並且你正在閱讀它們嗎?

+0

這是更好的代碼,它刪除空白行,但我仍然看到記事本++中的亂碼字符和從「s2」的第一行顯示在生成的文件中縮進,謝謝 – Vasukh

+0

您是否嘗試複製第一行或第二行?看起來您正在刪除幷包含新行,然後將剩餘的行復制到緩衝區中。你的意思是隻存儲第一部分? –

+0

我的意思是放棄第一行(因爲它包含標題)並僅複製數據(來自第2行)。的問題是,線2(新的第1行)中的文件出現縮進產生 – Vasukh