我已经检查了CreateFileW
内的原始Windows WriteFile
和jdk8u/jdk/src/windows/native/sun/nio/ch/FileDispatcherImpl.c
调用可用的所有源代码,但我不知道为什么这两个调用会创建不同的文件lenghts:
FileOutputStream f = new FileOutputStream(new File("x.cfg"));
f.write("hello\n".getBytes());
f.close();
和
FileOutputStream f = new FileOutputStream(new File("x.txt"));
f.write("hello\n".getBytes());
f.close();
我尝试了不同的扩展程序,但似乎只有.cfg
会导致LF→CRLF转换......
看起来它不是Java故障,只有Windows。
答案 0 :(得分:0)
好的,问题是OSGi文件安装服务在文件写完后进行了转换 ...