Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows上非常奇怪的FileOutputStream行为_Java_Windows_Io - Fatal编程技术网

Java Windows上非常奇怪的FileOutputStream行为

Java Windows上非常奇怪的FileOutputStream行为,java,windows,io,Java,Windows,Io,我已经检查了本机Windows中所有可用的源代码CreateFileW和WriteFile调用jdk8u/jdk/src/Windows/native/sun/nio/ch/FileDispatcherImpl.c,但我不知道为什么这两个调用会创建不同长度的文件: FileOutputStream f = new FileOutputStream(new File("x.cfg")); f.write("hello\n".getBytes()); f.close(); 及 我尝试了不同的扩展,

我已经检查了本机Windows中所有可用的源代码
CreateFileW
WriteFile
调用
jdk8u/jdk/src/Windows/native/sun/nio/ch/FileDispatcherImpl.c
,但我不知道为什么这两个调用会创建不同长度的文件:

FileOutputStream f = new FileOutputStream(new File("x.cfg"));
f.write("hello\n".getBytes());
f.close();

我尝试了不同的扩展,但似乎只有
.cfg
会导致LF→CRLF转换


看起来这不是Java的错误,只是Windows的问题。

好的,问题是OSGi fileinstall服务在写入文件后进行了转换…

好的,问题是OSGi fileinstall服务在写入文件后进行了转换…

使用JDK1.8.0\u 65这两个文件在我的系统上都有6个字节(Windows 7 64位)。可能是病毒扫描程序更改了内容吗?我尝试了JDK1.8.0_66,Windows 2012R2。您应该检查是否分配了config.properties文件。我不确定具体细节,但这里有一个指向用法的链接。这是Java问题,不是Windows问题。不转换任何内容,也不提供指定文本输出的方法。所有必须在Windows API(即CRT或JVM)上实现所需的转换。使用JDK1.8.065,两个文件在我的系统上都有6个字节(Windows 7 64位)。可能是病毒扫描程序更改了内容吗?我尝试了JDK1.8.0_66,Windows 2012R2。您应该检查是否分配了config.properties文件。我不确定具体细节,但这里有一个指向用法的链接。这是Java问题,不是Windows问题。不转换任何内容,也不提供指定文本输出的方法。所有所需的转换必须在Windows API(即CRT或JVM)之上实现。
FileOutputStream f = new FileOutputStream(new File("x.txt"));
f.write("hello\n".getBytes());
f.close();