【发布时间】:2015-04-21 09:44:32
【问题描述】:
我的代码有问题,我求助于将数组的内容写入文件,如下所示:-
Private Sub DumpArray (ByRef array_to_dump(,) As MyEnum, ByVal file_name As String)
Dim sw As StreamWriter = New StreamWriter(file_name)
For i As Integer = array_to_dump.GetLowerBound(0) To array_to_dump.GetUpperBound(0)
For j As Integer = array_to_dump.GetLowerBound(1) To array_to_dump.GetUpperBound(1)
If array_to_dump(i, j) = MyEnum.This Then
sw.Write("Fred")
Else
sw.Write("Bert")
End If
sw.Write(vbTab)
Next j
sw.WriteLine
Next i
sw.Flush
sw.Close
End Sub
这会产生我期望的输出;在当前情况下,一个用“Fred”填充的文件,用制表符分隔。但是,如果我将代码的业务端更改为:-
If array_to_dump(i, j) = MyEnum.This Then
sw.Write("1")
Else
sw.Write("0")
End If
该文件充满了非打印字符,这些字符在记事本中以小方框的形式出现,而不是我期望的由制表符分隔的“0”行。任何其他单字符串对都这样做。
虽然不是一个紧迫的问题,但我很好奇为什么会这样。有人知道吗?
【问题讨论】:
-
你有没有试过设置streamwriter的编码
-
@DavidSdot,不,我没有碰过它。我看不出我应该如何处理
Encoding,它在任何情况下似乎都是只读的。我在这里有什么遗漏吗? -
我无法用提供的代码重现问题。我的文件正确写入了 0 和 1。
-
您确定在将 1 和 0 写入文件时已将它们用引号括起来吗?这里的代码应该可以正常工作。我可以发誓我以前看到过这个问题。发帖人试图将单个字符写入文件,但使用的是
sw.Write(1)(不带引号),导致文件写入不正确。 -
我想到的是this question。不是重复的,但可能会有所帮助。