c# 对文本文件的StreamReader StreamWrite读写操作
文件:
当打开读或者写文件时,就成为了流Stream;
而流又分为了输入流和输出流。输入流就是想文件中写数据,
输出流就是从文件中读出数据、
StreamReader类对文件的读取和关闭
class Program
{
static void Main(string[] args)
{
try
{
//创建一个StreamReader对象来读取文件的内容
StreamReader sr = new StreamReader("C: /Users/JW/Desktop/起了.txt", Encoding.GetEncoding("GB2312"));
//调用ReadLine方法,把得到的第一行的值存入line中
//ReadLine方法读取文本,会以字符串的形式返回
string line = sr.ReadLine();
while (line != null)
{ //ReadLine读出来的数据一行行的打印出来
Console.WriteLine(line);
line = sr.ReadLine();
}
//关闭流
sr.Close();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
}
Console.ReadKey();
}
}
输出结果
注意:
1,ReadLine()读出的数据最终是以字符串的形式返回的,所以要用一个字符串变量来接收。
2,因为要读取的文件中是中文,所以要用Encoding.GetEncoding(“GB2312”)来设置
`StreamReader sr = new StreamReader("C: /Users/JW/Desktop/起了.txt", Encoding.GetEncoding("GB2312"));`
如果最后打印出来的中文还是乱码,另存为时将编码设置成ANSI:
StreamWriter类对文件的写和关闭操作
class Program
{
static void Main(string[] args)
{
try
{
//因为直接用StreamWriter类去创建对象,缺少了对文件的读/写/创建/权限的设置,所以就用FileStream去创建
FileStream fs = new FileStream("C:/Users/JW/Desktop/JW.txt", FileMode.Create, FileAccess.ReadWrite);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("你好吗?");
sw.WriteLine("风走了,你走了,过去还在,现在不再,一尘不染");
sw.WriteLine("有人看见过风吗?无一人,但是风走过,看看树,我们就都知道风已经来过了");
sw.Write("大雨冲刷过的天空,更加明亮!经历过风雨的日子,之后的日子更加有味道!");
sw.Close();
}
catch (IOException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
}
Console.ReadLine();
}
}
结果
注意:
因为直接用StreamWriter类去创建对象,其构造函数中只有第二个参数
设置了bool值。(为true时:若文件存在则保留里面的内容;
为false时:无论文件是否存在都创建新文件,原来的文件被覆盖
缺少了对文件的读/写/创建/权限的设置,所以就用FileStream去创建。
FileStream有FileAc cess和FileMode属性可以设置。