将 byte[] 存储到文件 C#
store byte[] into file C#
我有这个功能,一次读取一个网站名称,并为每个 url 创建一个对象数组,其中网站名称和从网页接收的字节被保存到数组中。然后将该数组保存到名为“saveData.txt”
的 txt 文件中
string[] readText = File.ReadAllLines("new.txt");
foreach (string s in readText)
{
object[] url = new object[2];
url[0] = s;
url[1] = displayByteCode(s);
using (StreamWriter writer = new StreamWriter("saveData.txt",true))
{
writer.WriteLine(url[0]+" "+ url[1]);
}
}
displayByteCode 是一个函数,如下所示:
public byte[] displayByteCode(string getURLCode)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(getURLCode);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
MemoryStream ms = new MemoryStream();
myResponse.GetResponseStream().CopyTo(ms);
byte[] data = ms.ToArray();
return data;
}
它是 return 从网站收到的字节数。虽然 url 已正确保存。字节保存为“System.Byte[]” 我如何保存实际字节而不是这个?感谢您的帮助!
当您在字符串和对象上调用 + 运算符时,它会在该对象上调用 toStirng 方法(这就是它在文件上写入 System.Byte[] 的原因)
你不能在c#中同时写字符串和字节,为了存储字节,你可以使用:
File.WriteAllBytes("saveData.txt", (byte[])url[1]);
或者您可以将其转换为字符串并存储:
writer.WriteLine(url[0]+" "+ Convert.ToBase64String((byte[])url[1]));
我有这个功能,一次读取一个网站名称,并为每个 url 创建一个对象数组,其中网站名称和从网页接收的字节被保存到数组中。然后将该数组保存到名为“saveData.txt”
的 txt 文件中 string[] readText = File.ReadAllLines("new.txt");
foreach (string s in readText)
{
object[] url = new object[2];
url[0] = s;
url[1] = displayByteCode(s);
using (StreamWriter writer = new StreamWriter("saveData.txt",true))
{
writer.WriteLine(url[0]+" "+ url[1]);
}
}
displayByteCode 是一个函数,如下所示:
public byte[] displayByteCode(string getURLCode)
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(getURLCode);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
MemoryStream ms = new MemoryStream();
myResponse.GetResponseStream().CopyTo(ms);
byte[] data = ms.ToArray();
return data;
}
它是 return 从网站收到的字节数。虽然 url 已正确保存。字节保存为“System.Byte[]” 我如何保存实际字节而不是这个?感谢您的帮助!
当您在字符串和对象上调用 + 运算符时,它会在该对象上调用 toStirng 方法(这就是它在文件上写入 System.Byte[] 的原因)
你不能在c#中同时写字符串和字节,为了存储字节,你可以使用:
File.WriteAllBytes("saveData.txt", (byte[])url[1]);
或者您可以将其转换为字符串并存储:
writer.WriteLine(url[0]+" "+ Convert.ToBase64String((byte[])url[1]));