码迷,mamicode.com
首页 > Windows程序 > 详细

c#简单的文件操作

时间:2020-08-03 18:37:59      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:htm   while   tps   dal   ref   text   ext   cto   其他   

FileInfo

使用FileInfo类的对象进行文件进行外部操作:

FileInfo file = new FileInfo(@".\..\..\lzx.txt");

if (file.Exists)

{

    Console.WriteLine("lzx.txt存在");

    //file.Delete();

}

else

{

    Console.WriteLine("lzx.txt不存在");

    file.Create();

}

这里可以使用相对路径绝对路径。需要注意是的当前路径是位于工程文件的.\bin\debug下的

技术图片

FileInfo类下的方法都很好理解,自行查看即可。

 

File

使用File对文件内容进行操作。常用的三个读写方法:

写:File.WriteAllText、File.WriteAllLines和File.WriteAllBytes

读:File.ReadAllText、File.ReadAllLines和File.ReadAllBytes

写段代码小跑下:

File.WriteAllText(@".\..\..\lzx1.txt", "hello world!");

string s1 = File.ReadAllText(@".\..\..\lzx1.txt");

Console.WriteLine(s1);

 

string[] str = new string[]{"11","22","33","44"};

File.WriteAllLines(@".\..\..\lzx2.txt",str);

string[] str2 = File.ReadAllLines(@".\..\..\lzx2.txt");

foreach (var temp in str2)

{

    Console.WriteLine(temp);

}

 

byte[] data = File.ReadAllBytes(@".\..\..\头像.jpg");

File.WriteAllBytes(@".\..\..\test.jpg",data);

 

Console.ReadKey();

}

结果如下:

技术图片

 

 

FileStream

一般使用FileStream处理二进制文件,如图片。

直接上代码:

//FileStream readsStream = new FileStream(@".\..\..\lzx.txt",FileMode.Append);

FileStream readsStream = new FileStream(@".\..\..\头像.jpg",FileMode.Open);

FileStream writeStream = new FileStream(@".\..\..\头像备份.jpg",FileMode.OpenOrCreate);

byte[] data = new byte[1024];

while (true)

{

    int length = readsStream.Read(data, 0, 1024);//每次返回读取的字节数,若读取完毕则返回0

    writeStream.Write(data, 0, length);

    Console.WriteLine(length);

    if (length==0)

    {

        break;

    }

}

//一定要关闭文件流,不然会出现写入数据不完整的情况

readsStream.Close();

writeStream.Close();

 

Console.ReadKey();

在工程文件夹下打开(不存在就创建新的)文件”头像备份.jpg”并将”头像.jpg”文件的内容复制到其中。

文件流处理分为好几种情况。一般来说独占文件打开的话,如果不关闭文件流,那么其它进程就无法读取这个文件了。二在使用写入模式打开文件的时候,如果不进行close可能会有部分数据在缓存中没有真实写入文件中,这样其它程序打开文件时看到的数据就不完整了。

所以使用后一定要关闭文件流,不然会出现写入文件不完整的情况。比如:

技术图片

如果需要进行大文件的复制,可以参考这篇博客:https://www.cnblogs.com/wolf-sun/p/3345392.html

 

 

StreamReaderStreamWriter

 

使用StreamReaderStreamWriter来读写文本文件。十分简易:

 

 

 

StreamReader reader = new StreamReader(@".\..\..\lzx.txt");//不存在则抛出异常


StreamWriter writer = new StreamWriter(@".\..\..\test.txt");//存在就打开并覆盖,没有则创建


//写入


while (true)


{


    string message = Console.ReadLine();


    if (message =="q")


        break;


    //writer.Write(message);//写成一串


    writer.WriteLine(message);//写成一行


}


 


//读取


while (true)


{


    string message = reader.ReadLine();


    if (message==null) break;


    Console.WriteLine(message);


}


 


reader.Close();


writer.Close();


Console.ReadKey();

技术图片技术图片

 技术图片技术图片

很好理解。

 

文件夹操作

与文件操作类似,使用DirectoryInfo类的对象进行文件操作:

DirectoryInfo dirInfo = new DirectoryInfo(".");

Console.WriteLine(dirInfo.FullName);

获取文件夹的完整路径,其他方法也很简单,这里也不过多演示。

c#简单的文件操作

标签:htm   while   tps   dal   ref   text   ext   cto   其他   

原文地址:https://www.cnblogs.com/qjns/p/13427403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!