1.在使用aspx返回读取一个文件的内容的时候,
注意:一定要设置头信息,否则会导致读取的文件不能够在页面上显示
Response.ContentType = "text/html";
2.当读取的文件头部中有<?xml version="1.0" encoding="utf-8" ?>这种标准的时候,需要设置返回的类型为xml才能够正常返回
<span style="white-space:pre"> </span>Response.ContentType = "text/xml";
3.即使读取txt文件,当出现<?xml version="1.0" encoding="utf-8" ?>或者html的头信息的时候,也不能正常读取,包含如下的信息也不能读取
dfgaasdfas
<root>
<node>
<data key="ip" value="127.0.0.1"></data>
<data key="ip" value="127.0.0.1"></data>
</node>
</root>
因为包含了节点,所以不能读取,但是去掉这些root节点的时候就可以正常显示了(只是能够正常显示
dfgaasdfas这部分)
总结:一定要注意文件头的返回类型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
namespace MobileApiMonitor
{
public partial class xmldata : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// String[] files = System.IO.Directory.GetFiles("data.xml");
string str4 = AppDomain.CurrentDomain.BaseDirectory;
string str5 = Request.PhysicalApplicationPath;
Response.ContentType = "text/html";
FileStream fs = new FileStream(str5+"a.txt", FileMode.Open, FileAccess.Read);
//仅 对文本 执行 读写操作
StreamReader sr = new StreamReader(fs);
//定位操作点,begin 是一个参考点
sr.BaseStream.Seek(0, SeekOrigin.Begin);
//读一下,看看文件内有没有内容,为下一步循环 提供判断依据
//sr.ReadLine() 这里是 StreamReader的要领 可不是 console 中的~
string str = sr.ReadLine();//假如 文件有内容
string content = str;
while (str != null)
{
//输出字符串,str 在上面已经定义了 读入一行字符
// Console.WriteLine("{0}", str);
Response.Write(str);
//这里我的理会是 当输出一行后,指针移动到下一行~
//下面这句话就是 判断 指针所指这行能无法 有内容~
str = sr.ReadLine();
//content += str;
}
//C#读取TXT文件之关上文件,留心顺序,先对文件内部执行 关上,然后才是文件~
sr.Close();
fs.Close();
//Response.Write(content.ToString());
Response.End();
}
}
}