在java中读取换行符char

时间:2013-05-21 14:31:03

标签: java newline notepad++

我正在追加并传输一堆文件,我想在第一个文件后修剪标题行。 在Windows上,以下java代码添加了一个空行,我在notepad ++中看到了乱码。任何修复/建议?谢谢。

    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 个答案:

答案 0 :(得分: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。此外,如果您跨平台移动文件,这可能会很棘手。

编辑我不确定你看到了什么,因为我没有完整的文件,但如果你看到时髦的角色,你也可以尝试修剪子串。你确定这些文件编码正确并且你正确地阅读它们吗?