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
。
我目前正在为学校做作业,试图将二维字符串数组写入文本文件。我有数组并且知道它工作正常但是每次我尝试将文件读入 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
。