如何设置标准输入模式在Java二进制?(How to set stdin mode to binar

2019-10-23 18:21发布

这是什么C在Java中,代码++线它设置stdin的模式为二进制的当量:

_setmode(_fileno(stdin),_O_BINARY);

谢谢。

Answer 1:

_setmode(_fileno(stdin),_O_BINARY); 在Windows上用于从文本模式切换到二进制模式,这防止\n从与被替换\r\n读取输入时。

System.in是一个通用InputStream ,其read方法返回一个字节,而不承担对输入的任何类型:

读取数据的从输入流的下一个字节。 值字节形式返回到255的范围内0的int如果没有可用的字节,因为流的末尾已到达,则该值返回-1。 此方法将阻塞,直到输入数据可用,检测到流的末尾或者抛出异常。

因此,没有必要为“禁用”文本模式,因为它从来没有“启用”摆在首位。


如果你没有合同确信,刚读的源代码,你会看到二进制模式被激活(标准输入,输出和错误)时,JVM初始化: http://hg.openjdk.java.net/jdk7u /jdk7u/hotspot/file/34aea5177b9c/src/os/windows/vm/os_windows.cpp#l3716 :

void os::win32::setmode_streams() {
  _setmode(_fileno(stdin), _O_BINARY);
  _setmode(_fileno(stdout), _O_BINARY);
  _setmode(_fileno(stderr), _O_BINARY);
}


文章来源: How to set stdin mode to binary in Java?
标签: java stdin