1

我有一个固定宽度的文本文件,我现在正在使用 streamreader/readline() 来阅读。

当我在记事本++中打开时,有一个字段如下所示

[NUL][NUL][NUL][SUB]

其他一切都是普通文本。我知道这个字段是 4 个字符,代表一个计数,所以应该看起来像这个 '0001'

我怎样才能阅读它并转换成'0001'

4

1 回答 1

3

我不确定“SUB”是什么意思 - 但如果它读作 U+0001,你总是可以使用:

for (int i = 0; i < 4; i++) {
    chars[i + index] = (int) chars[i + index] + '0';
}

(假设您有一个char[]被调用chars的 ,4 个字节从 开始index。)

首先要检查的是您是否真正正确地阅读了这些字符。坦率地说,有一个带有二进制数据的“文本”文件开始有点狡猾,但如果它只有字节 0-9,那么在大多数编码中,我希望它对应于 U+0000 到 U+0009。

于 2013-03-06T00:48:11.780 回答