streamreader(streamreaderror怎么办)
C#里边这样的语句是啥意思?StreamReader
从文件中读取数据。。。
这句话大致意思:
从某个文件中以GB2312的形式读取数据(流文件-二进制)
C#streamreader指定读取第几行
using?System.IO
public?partial?Form1?:?Form
{
????Liststring?lines;
????public?Form1()
?????{
????????????InitializeComponent();
????????????//存放所有行的集合
????????????lines?=?new?Liststring();
?????}
?????
?????private?void?Form1_Load(object?sender,?System.EventArgs?e)
?????{
????????????FileStream?fs?=?new?FileStream("TextFile1.txt",?FileMode.Open);
????????????StreamReader?rd?=?new?StreamReader(fs);
????????????string?s;
????????????//读入文件所有行,存放到Liststring集合中
????????????while(?(s=?rd.ReadLine()?)!=?null)
????????????{
????????????????lines.Add(s);
????????????}?????????
????????????rd.Close();
????????????fs.Close();
????????????//第一行在textBox1中显示
????????????if(lines.Count??0?)
????????????{
????????????????textBox1.Text?=?lines[0];
????????????}
????????????//第二行在textBox2中显示
????????????if(lines.Count??1)
????????????{
????????????????textBox2.Text?=?lines[1];
????????????}
?????}
}
还有更简单的方法,不使用StreamReader。
public?partial?Form1?:?Form
{
????string[]?lines;
????public?Form1()
?????{
????????????InitializeComponent();
?????}
?????
?????private?void?Form1_Load(object?sender,?System.EventArgs?e)
?????{
????????????lines?=?File.ReadAllLines("TextFile1.txt");
????????????//第一行在textBox1中显示
????????????if(lines.Length??0?)
????????????{
????????????????textBox1.Text?=?lines[0];
????????????}
????????????//第二行在textBox2中显示
????????????if(lines.Length??1)
????????????{
????????????????textBox2.Text?=?lines[1];
????????????}
?????}
}
C#中,StreamReader类的使用!
using有2种作用:1.就是用来引入命名控件 ,,如 using System.IO;2.语句,用using定义的代码,,会在句末释放using()中说使用的资源,,。。这样可以优化系统资源。如不用using使用文件流操作就要进行显示关闭文件流跟都写器如:FileStream fs = File.Open("文件名.扩展名", FileMode.Open, FileAccess.Read);
StreamReader sr=new StreamReader(fs, Encoding.GetEncoding("gb2312"));
string line=sr.ReandLine();
sr.Close();
fs.Close();
关于c#中streamreader使用的困惑
File或是FileInfo中的相应open方法其实是对应的stream对象的简写,如果反编译相关函数,大致如下所示,你可以发现,他总结了相应的参数,可能能满足绝大部分使用场景,在这种情况下,使用file.open***可以快捷方便的打开文件流,但是如果在一些特殊场景下,你还是需要使用new streamreader的某些重载来打开文件流。
而具体使用哪种方式看怎么方便了。
public static FileStream OpenRead(string path)
{
return new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
}
public static FileStream OpenWrite(string path)
{
return new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
}
public static StreamReader OpenText(string path)
{
return new StreamReader(path);
}
StreamReader 读取相对路径
如果你一定要用StreamReader的话,可以这样用:
string config = string.Empty;
using (StreamReader sr = new StreamReader(File.OpenRead(filePath)))
{
config = sr.ReadToEnd();
}
StreamReader可以接受一个Stream作参数,也可以直接传文件路径。(我的是.NET 3.5,不知道2.0是否可以)
如果你只是想获得文件内容,可以这样:
string config = File.ReadAllText(filePath);
最后,记得在project的Post Build Event里,把/Settings/Config.txt拷到编译输出目录下去。
如果你是想存config设定,最好还是存在App.Config里,App.Config会自动随可执行文件部署,就不用你手工拷贝了。
using System.Configuration; //(如果要使用System.Configuration,记得在project里引用System.Configuration这个assembly)
namespace MyLibrary
{
public class Program
{
static void Main(string[] args)
{
string setting1Value = ConfigurationManager.AppSettings["Settings1"];
}
}
}
streamreade命令r 需要使用哪个 using命名空间
StreamReader是文件流对象,需要导入System.IO命名空间
? ?? ?在读写文件的过程中,Filestream只可以进行以字节为单位原始数据流进行读写操作,为此,C#中提供了功能更加强大的StreamReader/ StreamWriter来支持文件的读写. StreamReader/ StreamWriter可以进行以字符为单位的数据读写操作.
一. 用StreamReader的构造函数
StreamReader有很多的构造函数:在这里只列出两个常用和比较常见的
StreamReader??sr=new?StreamReader?(Stream);?Stream可以是Filestream;
StreamReader??sr=new?StreamReader?(String);?String为指定的文件名初始化?StreamReader?类的新实例。
例如:
//demo1
FileStream?filest?=?new?FileStream(@"c:\abc.txt",?FileMode.Open,?FileAccess.ReadWrite);?StreamReader?sr?=?new?StreamReader(filest);
//demo2
StreamReader?another?=?new?StreamReader(@"c:\abc.txt");
两个StreamReader都指向同一个文件.
StreamReader读取文件中的数据的代码:
FileStream?filest?=?new?FileStream(@"c:\abc.txt",?FileMode.Open,?FileAccess.ReadWrite);
StreamReader?sr?=?new?StreamReader(filest);
string?strLine?=?sr.ReadLine();//读取文件中的一行
while(strLine!=null)//判断是否为空,表示到文件最后一行了
{
Console.WriteLine(strLine);
strLine?=?sr.ReadLine();
}
sr.Close();//关闭流
filest.Close();
二. StreamWriter
StreamWriter 专门用于的向文件中写数据的,它和StreamReader类似,只是一个负责向文件中写数据,一个负责向文件中读数据而已.
StreamWriter 构造函数也有很多.在这里只举例两个构造函数.
StreamWriter??sr=new?StreamWriter?(Stream);?Stream可以是Filestream;
StreamWriter??sr=new?StreamWriter?(String);?String为指定的文件名初始化StreamWriter?类的新实例。
例如:
//demo1
FileStream?filest?=?new?FileStream(@"c:\abc.txt",?FileMode.Open,?FileAccess.ReadWrite);?StreamWriter?sw?=?new?StreamWriter?(filest);
//demo2
StreamWriter?another?=?new?StreamWriter?(@"c:\abc.txt");
StreamWriter向文件写入数据的例子:
FileStream?filewriter?=?new?FileStream(@"C:\abc.txt",?FileMode.Append,?FileAccess.Write);
以追加的方式打开文件,并进行写入操作.
StreamWriter?sw?=?new?StreamWriter(filewriter);?构造函数;
for?(char?mychar?=?'a';?mychar?=?'z';?mychar++)
{
sw.Write(mychar);//将从a—z26个小写字母写入文件中.
}
sw.Close();filewriter.Close();
//demo
FileStream?filest?=?new?FileStream(@"c:\abc.txt",?FileMode.Open,?FileAccess.ReadWrite);
StreamReader?sr?=?new?StreamReader(filest);
string?strLine?=?sr.ReadLine();
while(strLine!=null)
{
Console.WriteLine(strLine);
strLine?=?sr.ReadLine();
}
sr.Close();
filest.Close();