Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 整数不能作为格式正确的字符串写入二进制文件_C#_Binary Data - Fatal编程技术网

C# 整数不能作为格式正确的字符串写入二进制文件

C# 整数不能作为格式正确的字符串写入二进制文件,c#,binary-data,C#,Binary Data,我正在从数据库中读取数据以写入二进制文件,并使用Sybase的bcp命令一次性将大数据写入我的新数据库(或千篇一律) 您可以看到我的实体IdNumbers是整数,我正在将其作为字符串写入文件 但在二进制文件中,数据如下所示: f1,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefinis,0,N,00112000,0,000,0,0,0,0,0,0,0,所有 d2,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefi

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

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

但在二进制文件中,数据如下所示:

f1,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefinis,0,N,00112000,0,000,0,0,0,0,0,0,0,所有 d2,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefinis,0,N,00112,,0,,,0,0,0,0,0,0,0,,,全部 d3,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefinis,0,N,00112,L1,0,0,1,0,0,0,0,0,所有 d4,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefinis,0,N,00112,L2,0,0,0,0,0,0,所有 d5,LS-CIC,12,1999-00-122070-00-01199-00-12,jdefinis,0,N,00112,L3,0,L3,0,L3,0,0,0,0,0,0,所有


每个数字“4”在二进制文件中转换为“d4”。为什么?我怎样才能纠正这个问题呢

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


PS:
d
是100,ASCII格式,这是字符串的长度
0,1,…,36

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

这就是stackoverflow的工作原理: