如何在Java中将stdin模式设置为二进制? java中的C++代码行的等价物,它将STDIN模式设置为二进制: _setmode(_fileno(stdin),_O_BINARY);

如何在Java中将stdin模式设置为二进制? java中的C++代码行的等价物,它将STDIN模式设置为二进制: _setmode(_fileno(stdin),_O_BINARY);,java,stdin,Java,Stdin,谢谢。没有\u设置模式(\u文件号(标准格式),\u二进制文件)用于从文本模式切换到二进制模式,这可防止读取输入时将\n替换为\r\n 是一个通用的InputStream,它返回下一个字节,而不假设任何输入类型: 从输入流读取数据的下一个字节。值字节作为0到255范围内的整数返回。如果由于到达流的结尾而没有字节可用,则返回值-1。此方法会一直阻塞,直到输入数据可用、检测到流结束或引发异常为止 因此,不需要“禁用”文本模式,因为它从一开始就没有“启用” 如果您不相信契约,只需阅读源代码,您就会看

谢谢。

没有<代码>\u设置模式(\u文件号(标准格式),\u二进制文件)用于从文本模式切换到二进制模式,这可防止读取输入时将
\n
替换为
\r\n

是一个通用的
InputStream
,它返回下一个字节,而不假设任何输入类型:

从输入流读取数据的下一个字节。值字节作为0到255范围内的整数返回。如果由于到达流的结尾而没有字节可用,则返回值-1。此方法会一直阻塞,直到输入数据可用、检测到流结束或引发异常为止

因此,不需要“禁用”文本模式,因为它从一开始就没有“启用”


如果您不相信契约,只需阅读源代码,您就会看到当JVM初始化时,二进制模式被激活(对于stdin、stdout和stderr):

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

<代码>\u设置模式(\u文件号(标准格式),\u二进制文件)用于从文本模式切换到二进制模式,这可防止读取输入时将
\n
替换为
\r\n

是一个通用的
InputStream
,它返回下一个字节,而不假设任何输入类型:

从输入流读取数据的下一个字节。值字节作为0到255范围内的整数返回。如果由于到达流的结尾而没有字节可用,则返回值-1。此方法会一直阻塞,直到输入数据可用、检测到流结束或引发异常为止

因此,不需要“禁用”文本模式,因为它从一开始就没有“启用”


如果您不相信契约,只需阅读源代码,您就会看到当JVM初始化时,二进制模式被激活(对于stdin、stdout和stderr):

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