我正在追加并传输一堆文件,我想在第一个文件后修剪标题行。 在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;
}
答案 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。此外,如果您跨平台移动文件,这可能会很棘手。
编辑我不确定你看到了什么,因为我没有完整的文件,但如果你看到时髦的角色,你也可以尝试修剪子串。你确定这些文件编码正确并且你正确地阅读它们吗?