我对FIX-Protocol比较新.
FIX协议消息的分隔符有时会显示^和其他时间.维基百科的FIX协议说[SOH](< 十六进制的开头 >十六进制为0x01)是该字符.
请解释一下这个含义.
例如,FIX协议消息可以在视觉上表示为
8=FIX.4.4^9=122^35=D^34=215^49=CLIENT12^52=20100225-19:41:57.316^56=B^1=Marcel^11=13346^21=1^40=2^44=5^54=1^59=0^60=20100225-19:39:52.020^10=072^
Run Code Online (Sandbox Code Playgroud)
要么
8=FIX.4.4|9=122|35=D|34=215|49=CLIENT12|52=20100225-19:41:57.316|56=B|1=Marcel|11=13346|21=1|40=2|44=5|54=1|59=0|60=20100225-19:39:52.020|10=072|
Run Code Online (Sandbox Code Playgroud)
那么使用^ over |的确切区别是什么?
是否还使用了其他分隔符.不清楚为什么[SOH](0x01)适合^或|
它可能是数字之一.
默认情况下,Character并String使用UTF-16,但是,出于所有实际目的,在北美和大多数英语语言环境中,UTF-8就足够了(因为它可以达到4个字节).所以,如果我使用a InputStreamReader(InputStream),那它会给我默认的UTF-16 char编码吗?使用a InputStreamReader(InputStream, "UTF-8")将提供UTF-8编码,这足以达到我的目的.
如何在使用英语语言环境时自动将JVM的默认编码设置为UTF-8?目的是改善性能Character和String操作(通过使用8位方案而不是16位编码,大多数ASCII使用8位编码覆盖,同时符合Unicode标准).
任何评论都表示赞赏.谢谢!
这个话题很简单,但我可能会在这里混淆一下.网络字节顺序是Big-Endian.默认情况下,Java也使用Big-endian(就像类文件一样).我的Windows机器使用Intel处理器,Little-Endian和Windows本身也使用Little-Endian.所以,如果我使用a java.nio.ByteBuffer.allocateDirect(),那么默认的Endianness是Little-Endian(因为OS和/或处理器),但是,如果我想在网络上发送这些数据,在读取数据时 ByteBuffer,我是否需要使用ByteBuffer.order(ByteOrder.BIG_ENDIAN)?另外,在从a Channel到a 读取数据时,我是否必须反向ByteBuffer?使用java.io包时我几乎忽略了它
问题的另一部分也与机器本身的工作有关.
我试图调查一个DirecoryStream.Filter示例newDirectoryStream,我可以在其中列出超过60天的目录(及其所有子目录)下的所有文件,作为示例.
DirectoryStream<Path> dirS = Files.newDirectoryStream(Paths.get("C:/myRootDirectory"), <DirectoryStream.filter>);
for (Path entry: dirS) {
System.out.println(entry.toString());
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,应该是DirectoryStream.filter什么?
这将是一个很大的帮助,因为我正在一个项目,我试图删除早于某个时间戳和java-1.7 File.listFiles()之前的文件挂起.
可以Files.walkFileTree()提供一个选项吗?
java ×3
encoding ×2
endianness ×1
file-io ×1
financial ×1
fix-protocol ×1
nio2 ×1
unicode ×1
utf-8 ×1