0

我正在从数据库中读取数据以写入二进制文件,并使用bcpSybase 的命令一次将大数据写入我的新数据库(或千千等)

您可以看到我的实体IdNumbers是整数,我将它作为字符串写入文件。

在此处输入图像描述

但是在二进制文件中数据是这样的:

f1 ,LS-CIC,12,,1999-00-12,2070-00-01,1999-00-12,jdefinis,0,,N,0,0112,000,,0,,000,0,0, 0, ,0,0,0, ,,,ALL d2 ,LS-CIC,12,,1999-00-12,2070-00-01,1999-00-12,jdefinis,0,,N,0,0112 , ,,0,, ,0,0,0, ,0,0,0, ,,,ALL d3 ,LS-CIC,12,,1999-00-12,2070-00-01,1999-00-12 ,jdefinis,0,,N,0,0112,L1,,0,,L1,0,0,0, ,0,0,0, ,,,ALL d4 ,LS-CIC,12,,1999-00- 12,2070-00-01,1999-00-12,jdefinis,0,,N,0,0112,L2,,0,,L2,0,0,0, ,0,0,0, ,,,ALL d5 ,LS-CIC,12,,1999-00-12,2070-00-01,1999-00-12,jdefinis,0,,N,0,0112,L3,,0,,L3,0,0, 0, ,0,0,0, ,,,全部

每个数字“4”在二进制文件中转换为“d4”。为什么?我该如何纠正这个问题?

4

2 回答 2

0

BinaryWriter 将一些关于数据的额外信息(例如长度)放入文件中。如果要将文件写入文本,请改用 StreamWriter。见前,

using (var f = File.Create(filename))
{
    BinaryWriter bw = new BinaryWriter(f);
    bw.Write(String.Join(",", Enumerable.Range(0, 37)));
}

如果您期望输出是0,1,.....,36,不。它将是

d0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36

PS:d在 ASCII 中是 100,这是字符串的长度0,1,...,36

于 2013-05-30T07:08:02.333 回答
0

我将 BinaryWriter 更改为 StreamWriter 以防止出现问题。正如 I4V 所说,在二进制形式中,文件总是带有额外的字符

于 2013-05-31T07:06:27.630 回答