C# 无法在 C# 中的 txt 文件上使用 Streamwriter Properties.Resources

C# Cannot use Streamwriter on a txt file in C# Properties.Resources

我目前正在为学校做作业,试图将二维字符串数组写入文本文件。我有数组并且知道它工作正常但是每次我尝试将文件读入 Streamwriter 时我得到 "System.ArgumentException: 'Illegal characters in path.'"。我是 C# 的新手,我不知道如何解决这个问题。

这是我的代码。我只需要知道如何将我的二维数组写入文本文件而不会出现此错误。谢谢,非常感谢所有帮助!

    // This line under is where the error happens
    using (var sw = new StreamWriter(Harvey_Norman.Properties.Resources.InventoryList))
        {
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    sw.Write(InventoryArray[i, j] + " ");
                }
                sw.Write("\n");
            }

            sw.Flush();
            sw.Close();
        }

我的猜测是 Harvey_Norman.Properties.Resources.InventoryList 是您项目中的一个类型为字符串的资源 -- 而该字符串的值对于您的操作系统来说不是有效路径。

StreamWriter 要么接受一个字符串,在这种情况下,它希望打开一个包含该字符串路径的文件;或者它需要一个流,你可以写入那个流。看起来你正在尝试做前者;但是您需要检查该资源的值以查看它是否是有效路径。

您正在尝试使用无效的文件路径构建 StreamWriter

此外,如果您只是写出文字,您可以使用 File.CreateText() 创建一个 StreamWriter,例如:

var tempFilePath = Path.GetTempFileName();

using (var writer = File.CreateText(tempFilePath))
{
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (j > 0)
                writer.WriteLine(" ");

            writer.Write(InventoryArray[i, j]);
        }

        writer.WriteLine();
    }
}

using会自动刷新并关闭文件,并处理StreamWriter