如何将ArrayList的内容保存到文件中?

发布于 2024-12-13 16:06:08 字数 1168 浏览 4 评论 0原文

如何将ArrayList的内容保存到文件中?我正在使用以下代码,但 ToString() 仅显示名称。

编辑

其他我忘记提及的事情。我将数据加密存储。我唯一遇到的问题是获取 ArrayList 的全部内容并将其传递给加密方法。

推荐的假人示例。

SaveFile()方法

private void SaveFile()
{
    sfdSaveFile.FileName = storedAuth.UserName;
    sfdSaveFile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    sfdSaveFile.RestoreDirectory = true;
    sfdSaveFile.Filter = "AES Binary Files (*.abf)|*.sbf|All files (*.*)|*.*";
    sfdSaveFile.DefaultExt = ".abf";
    sfdSaveFile.FilterIndex = 1;

    sfdSaveFile.ShowDialog();
}

保存文件对话框

private void sfdSaveToLocation_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
    EncryptDecrypt en = new EncryptDecrypt();
    AddEntryWindow addWindow = new AddEntryWindow
                (this, storedAuth.UserName, storedAuth.Password);


    // how to save it appropriately?
    string encrypted = en.Encrypt(addWindow.addedEntry.ToString(),
        storedAuth.UserName, storedAuth.Password);

    File.WriteAllText(sfdSaveFile.FileName, encrypted);
}

How to save content of ArrayList to the file? I am working with the following code but ToString() only display a name.

Edit

Other thing I have forgotten mention. I am storing the data as encrypted. The only thing I have problem with is getting the whole content of ArrayList and pass it to encryption method.

Examples for dummies recommended.

SaveFile() method

private void SaveFile()
{
    sfdSaveFile.FileName = storedAuth.UserName;
    sfdSaveFile.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    sfdSaveFile.RestoreDirectory = true;
    sfdSaveFile.Filter = "AES Binary Files (*.abf)|*.sbf|All files (*.*)|*.*";
    sfdSaveFile.DefaultExt = ".abf";
    sfdSaveFile.FilterIndex = 1;

    sfdSaveFile.ShowDialog();
}

Save File Dialog

private void sfdSaveToLocation_FileOk(object sender, System.ComponentModel.CancelEventArgs e)
{
    EncryptDecrypt en = new EncryptDecrypt();
    AddEntryWindow addWindow = new AddEntryWindow
                (this, storedAuth.UserName, storedAuth.Password);


    // how to save it appropriately?
    string encrypted = en.Encrypt(addWindow.addedEntry.ToString(),
        storedAuth.UserName, storedAuth.Password);

    File.WriteAllText(sfdSaveFile.FileName, encrypted);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏夜暖风 2024-12-20 16:06:08

使用序列化是个好主意,该方法会将数组转换为字符串(数组项的类型应该是可序列化的)

public string arrayToString(System.Collections.ArrayList ar)
{
    StringBuilder sb = new StringBuilder();
    System.Xml.XmlWriterSettings st = new System.Xml.XmlWriterSettings();
    st.OmitXmlDeclaration = true;
    st.Indent = false;
    System.Xml.XmlWriter w = System.Xml.XmlWriter.Create(sb, st);
    System.Xml.Serialization.XmlSerializer s = new System.Xml.Serialization.XmlSerializer(ar.GetType());
    s.Serialize(w, ar);
    w.Close();
    return sb.ToString();        
}

public static void SaveArraytoFile(System.Collections.ArrayList ar, string fileName)
{
    using (System.IO.StreamWriter sw = new StreamWriter(fileName))
    {
        foreach (var item in ar)
        {
            sw.WriteLine(item);
        }
    }
}

Using Serialization can be good idea this method will convert array to string (the type of array item should be serialiazable)

public string arrayToString(System.Collections.ArrayList ar)
{
    StringBuilder sb = new StringBuilder();
    System.Xml.XmlWriterSettings st = new System.Xml.XmlWriterSettings();
    st.OmitXmlDeclaration = true;
    st.Indent = false;
    System.Xml.XmlWriter w = System.Xml.XmlWriter.Create(sb, st);
    System.Xml.Serialization.XmlSerializer s = new System.Xml.Serialization.XmlSerializer(ar.GetType());
    s.Serialize(w, ar);
    w.Close();
    return sb.ToString();        
}

public static void SaveArraytoFile(System.Collections.ArrayList ar, string fileName)
{
    using (System.IO.StreamWriter sw = new StreamWriter(fileName))
    {
        foreach (var item in ar)
        {
            sw.WriteLine(item);
        }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文