我已将txt文件存储到sql server数据库。 我需要逐行读取txt文件以获取其中的内容。 我的代码:
DataTable dtDeleteFolderFile = new DataTable();
dtDeleteFolderFile = objutility.GetData("GetTxtFileonFileName", new object[] { ddlSelectFile.SelectedItem.Text }).Tables[0];
foreach (DataRow dr in dtDeleteFolderFile.Rows)
{
name = dr["FileName"].ToString();
records = Convert.ToInt32(dr["NoOfRecords"].ToString());
bytes = (Byte[])dr["Data"];
}
FileStream readfile = new FileStream(Server.MapPath("txtfiles/" + name), FileMode.Open);
StreamReader streamreader = new StreamReader(readfile);
string line = "";
line = streamreader.ReadLine();
但是我在这里使用了FileStream
来读取特殊路径。但我已将字节格式的txt文件保存到我的数据库中。如何使用byte []值读取txt文件以获取txt文件内容,而不是使用Path值。
答案 0 :(得分:1)
鉴于您将文件放在字节数组中,您可以使用MemoryStream Class
像
这样的东西using (MemoryStream m = new MemoryStream(buffer))
using (StreamReader sr = new StreamReader(m))
{
while (!sr.EndOfStream)
{
string s = sr.ReadLine();
}
}
另请务必使用using Statement (C# Reference)
定义一个范围,在其范围之外 将丢弃一个或多个物体。
using语句允许 程序员指定何时对象 使用资源应该发布 他们。提供给使用的对象 声明必须执行 IDisposable接口。这个界面 提供Dispose方法,其中 应释放对象的资源。
答案 1 :(得分:0)
你可以在foreach
:
String txtFileContent = Encoding.Unicode.GetString((Byte[])dr["Data"]);