我已经检查了 jdk8u/jdk/src/windows/native/sun/nio/ch/FileDispatcherImpl.c
内 native Windows CreateFileW
和 WriteFile
调用的所有可用源代码,但我不知道为什么这两个调用会创建不同长度的文件:
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 的错误。
最佳答案
好的,问题出在 OSGi 文件安装服务在写入文件之后进行了转换...
关于java - Windows 上非常奇怪的 FileOutputStream 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758081/