目录
StreamReader和StreamWriter读写文本文件
文件操作FileInfo
//相对路径:就是找当前程序所在的路径
FileInfo fileInfo = new FileInfo("TextFile1.txt");
//绝对路径:加上文件完整的路径名
FileInfo fileInfo = new FileInfo(@"文件路径");
Console.WriteLine(fileInfo.Exists);//判断该文件是否存在
Console.WriteLine(fileInfo.Name);//文件名.后缀
Console.WriteLine(fileInfo.Directory);//取得文件所在路径
Console.WriteLine(fileInfo.Length);//文件大小
Console.WriteLine(fileInfo.IsReadOnly);//文件是否为只读
fileInfo.Delete();//删除的是输出路径的文件,工程下的文件还是存在的
fileInfo.CopyTo("tt.txt");
FileInfo fileInfo = new FileInfo("siki.txt");
if (fileInfo.Exists == false)//如果当前文件不存在
{
fileInfo.Create();//创建当前文件
}
fileInfo.MoveTo("siki2.txt");//重命名操作
文件夹操作DirectoryInfo
DirectoryInfo dirInfo = new DirectoryInfo(@"文件夹绝对路径");//查看Debug文件夹的信息
Console.WriteLine(dirInfo.Exists);//文件夹是否存在
Console.WriteLine(dirInfo.Name);//文件夹名字
Console.WriteLine(dirInfo.Parent);//文件夹父目录
Console.WriteLine(dirInfo.Root);//文件夹根目录
Console.WriteLine(dirInfo.CreationTime);//文件夹创建时间
dirInfo.CreateSubdirectory("siki");//创建文件夹
DirectoryInfo dirInfo = new DirectoryInfo("test");
if (dirInfo.Exists == false)
{
dirInfo.Create();//创建目录
}
File读写文件
string[] strArray = File.ReadAllLines("TextFile1.txt");//读取文件,把每一个行文本读取成一个字符串,最后组成一个字符串的数组
foreach (var s in strArray)
{
Console.WriteLine(s);
}
string s = File.ReadAllText("TextFile1.txt");//把所有文本读成一个字符串
Console.WriteLine(s);
byte[] byteArray = File.ReadAllBytes("3.LINQ.png");//字节读取
foreach (var b in byteArray)
{
Console.Write(b);
}
File.WriteAllText("textfile2.txt", "hello sdf中国");//全部写入
File.WriteAllLines("textfile3.txt",new string[]{" sdfsdflk","213412","流口水的减肥"});//按行写入,每个字符串数组的一个元素被写成一行
byte[] data = File.ReadAllBytes("3.LINQ.png");
File.WriteAllBytes("4.png",data);
FileStream读写文件
//1,创建文件流 用来操作文件
FileStream stream = new FileStream("TextFile1.txt",FileMode.Open);//打开的方式FileMode有很多种
//2, 读取或者写入数据
byte[] data = new byte[1024];//数据容器
//1 byte = 1字节 1024byte=1KB 1024KB=1MB 1024MB = 1GB 1024GB=1T
while (true)
{
int length = stream.Read(data, 0, data.Length);
if (length == 0)
{
Console.WriteLine("读取结束");
break;
}
for (int i = 0; i < length; i++)
{
Console.Write(data[i] + " ");
}
}
//使用filestream完成文件复制
1.5MB = 1.5*1024KB = 2k多KB= 2k多*1000 byte
FileStream readStream = new FileStream("3.LINQ.png",FileMode.Open);
FileStream writeStream = new FileStream("LINQ副本.png",FileMode.Create);
byte[] data = new byte[1024];
while (true)
{
int length = readStream.Read(data, 0, data.Length);
if (length == 0)
{
Console.WriteLine("读取结束");
break;
}
else
{
writeStream.Write(data,0,length);
}
}
writeStream.Close();
readStream.Close();
StreamReader和StreamWriter读写文本文件
//创建文本文件读取流
StreamReader reader = new StreamReader("TextFile1.txt");
while (true)
{
string str = reader.ReadLine();//读取一行字符串
if (str == null) break;
Console.WriteLine(str);
}
string str = reader.ReadToEnd();//读取到文本的结尾(读取文本中所有的字符)
Console.WriteLine(str);
while (true)
{
int res = reader.Read();//读取
if (res == -1)
{
break;
}
else
{
Console.Write((char)res);
}
}
reader.Close();
//文本文件写入流
StreamWriter writer = new StreamWriter("textfile2.txt");//如果文件存在,那么文件会被覆盖
while (true)
{
string message = Console.ReadLine();
if (message == "q")
break;
writer.Write(message);//写入一个字符串
writer.WriteLine(message);//吸入一个字符串并换行
}
writer.Close();