c#如何实现读取TXT文件?里面存的是二进制数据,打开以后是这样的“耏狿?M綛猃?俧w=}亡=}亡纲”。
2个回答
展开全部
我不太清楚你到底想读取文本文件,还是二进制文件。
两种代码如下:
C# 读取txt文件
System.IO.StreamReader sr = new System.IO.StreamReader("d:\\aaa.txt");
while (!sr.EndOfStream)
{
string sline = sr.ReadLine();
System.Console.WriteLine(sline);
}
c#读取二进制文件
System.IO.FileStream fs = new System.IO.FileStream("d:\\aaa.dat", System.IO.FileMode.Open);
byte[] buffer = new byte[1024];
int nbuffer = 0;
nbuffer = fs.Read(buffer, 0, 1024);
两种代码如下:
C# 读取txt文件
System.IO.StreamReader sr = new System.IO.StreamReader("d:\\aaa.txt");
while (!sr.EndOfStream)
{
string sline = sr.ReadLine();
System.Console.WriteLine(sline);
}
c#读取二进制文件
System.IO.FileStream fs = new System.IO.FileStream("d:\\aaa.dat", System.IO.FileMode.Open);
byte[] buffer = new byte[1024];
int nbuffer = 0;
nbuffer = fs.Read(buffer, 0, 1024);
更多追问追答
追问
您好,谢谢您的回复,我的文件是TXT文件,但是里面的数据是二进制数据,打开以后是乱码,这应该算是二进制文件还是txt文件那,对这点我也不清楚,您能给我详细说明点吗,我可以最加我的分数,谢谢!
追答
一般来说,
文本文件通常是指内容由一系列可识别的字符编码组成的文件,其字符编码可能是ansi编码,也可能是utf-8编码,也可能是其他种类的编码。绝大多数可以用记事本打开。如果编码匹配错误就可能出现乱码现象。对于文本文件的读取,一般是先探测其编码类型,然后选用正确的编码格式来读取,然后按文本语义加以解释。
二进制文件通常是指将某种数据结构直接序列化成字节流并存入文件。此类文件不存在编码格式问题。只要按照原始数据结构进行反向序列化即可。对于二进制文件的读取,一般采用字节流方式提取,然后将其注入到原始数据结构中,即可获取到相应信息。
另外,扩展名为TXT的文件并不一定就是文本文件。
用记事本打开显示乱码的文件也不一定就不是文本文件。
所以,要解答你的问题,
需要首先知道你要打开的这个文件存储了什么信息,以什么格式存储的。
展开全部
Boolean fileOk = false;
//判断是否已经选取文件
if (fuFile.HasFile)
{
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(fuFile.FileName).ToLower();
//限定只能上传jpg和gif图片
string[] allowExtension = {".txt", ".doc", ".docx", ".xls", ".xlsx" };
//对上传的文件的类型进行一个个匹对
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])
{
fileOk = true;
break;
}
}
//判断上传文件是否匹配
if (!fileOk)
{
Response.Write("要上传的文件类型不对!");
}
//对上传文件的大小进行检测,限定文件最大不超过1M
if (fuFile.PostedFile.ContentLength > 1024000)
{
fileOk = false;
}
//打开正确的文件类型
if (fileOk)
{
try
{
StreamReader fileContent = new StreamReader(fuFile.PostedFile.FileName,System.Text.Encoding.GetEncoding("GB2312"));
while (!fileContent.EndOfStream)
{
//读取每一行数据
string str = fileContent.ReadLine();
#region 代码块
//
//在此添加需要做的处理
//
#endregion
}
}
catch {
Response.Write("上传失败");
}
}
else
{
Response.Write("文件类型或者文件大小超出1M或者文件类型不对");
}
}
//判断是否已经选取文件
if (fuFile.HasFile)
{
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(fuFile.FileName).ToLower();
//限定只能上传jpg和gif图片
string[] allowExtension = {".txt", ".doc", ".docx", ".xls", ".xlsx" };
//对上传的文件的类型进行一个个匹对
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])
{
fileOk = true;
break;
}
}
//判断上传文件是否匹配
if (!fileOk)
{
Response.Write("要上传的文件类型不对!");
}
//对上传文件的大小进行检测,限定文件最大不超过1M
if (fuFile.PostedFile.ContentLength > 1024000)
{
fileOk = false;
}
//打开正确的文件类型
if (fileOk)
{
try
{
StreamReader fileContent = new StreamReader(fuFile.PostedFile.FileName,System.Text.Encoding.GetEncoding("GB2312"));
while (!fileContent.EndOfStream)
{
//读取每一行数据
string str = fileContent.ReadLine();
#region 代码块
//
//在此添加需要做的处理
//
#endregion
}
}
catch {
Response.Write("上传失败");
}
}
else
{
Response.Write("文件类型或者文件大小超出1M或者文件类型不对");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询