2012-03-20 160 views
1

我需要降低接收到的序列号以执行FIX认证以检查间隙填充/重新发送工作。Quickfix更改序列号

我试着编辑号码,但现在我每次启动我的应用程序时都会收到EOF Exception

序列号文件的格式是有点不可思议:

^@^C7:4 

任何想法如何做到这一点?

谢谢。

+1

并且你做了什么编辑?这可能是一个二进制文件,而不是一个文本文件,所以你不能用记事本编辑它,并期望它可以工作。 – Viruzzo 2012-03-20 12:47:54

+0

我尝试了记事本,并在cygwin中使用nano。你还可以编辑它吗? – 2012-03-20 14:37:26

+0

要编辑二进制文件,您需要一个二进制编辑器*和*深入了解文件的制作方法。 – Viruzzo 2012-03-20 15:50:38

回答

4
public static void main(String[] args) throws IOException { 
    int senderSequenceNumber=1910; 
    int targetSequenceNumber=2268; 
    RandomAccessFile file = new RandomAccessFile("C:\\filename.seqnums", "rw"); 
    file.seek(0); 
    file.writeUTF("" + senderSequenceNumber + ':'+ targetSequenceNumber); 
} 

这是从quickfix.FileStore

适应
0

可以使用file.readUTF()打印序列号字符串。

 RandomAccessFile seqFile = new RandomAccessFile("/Users/jacky/test.seqnums", "r"); 
     System.out.println(seqFile.readUTF()); 
     seqFile.close();