代码写入1行太多,或者写入它应该写入的1行

时间:2013-09-19 02:36:08

标签: vb.net streamreader streamwriter

我最近编写了一个应用程序,该应用程序使用字母表中的字符创建随机密码,然后使用Rijndael算法对其进行加密,并将它们写入.txt文件。

叫我偏执,但我喜欢密码安全。

今天,我遇到了一个问题,这一切都很好,直到现在。

我想创建一个新密码并将其添加到我的初始文件中,该文件已包含另一个密码和我的访问密钥。

由于某种原因,下面的代码要么将新文本附加到上一行,这会使我的解密变得混乱,或者(使用注释代码)它会在前一行和刚刚写入的行之间插入一个空行

Dim empty As Boolean = True
Using reader As StreamReader = New StreamReader(fileLoc)
    'If Not reader.ReadLine() Is Nothing Then
    '    empty = False
    'End If
End Using

Using writer As StreamWriter = New StreamWriter(fileLoc, True)
    If Not empty Then
        writer.WriteLine()
    End If
    If passName = "" Then
        writer.WriteLine(cryptPass)
    Else
        writer.WriteLine(passName & " " & cryptPass)
    End If
End Using

1 个答案:

答案 0 :(得分:1)

尝试这样的事情:

    Dim lines As New List(Of String)
    lines.AddRange(System.IO.File.ReadAllLines(fileLoc))
    For i As Integer = lines.Count - 1 To 0 Step -1
        If lines(i) = "" Then
            lines.RemoveAt(i)
        End If
    Next

    If passName = "" Then
        lines.Add(cryptPass)
    Else
        lines.Add(passName & " " & cryptPass)
    End If

    System.IO.File.WriteAllLines(fileLoc, lines.ToArray)