C#的常用I/O操作


对于常用的I/O操作有文本的读写,二进制文件读写,文件的读写。

1.文本文件读写可以使用:SteamReader/SteamWriter

string pathRead = @"e:\File\test.txt";
string s=null;
if (File.Exists(pathRead))
{
    StreamReader read = new StreamReader(pathRead, System.Text.Encoding.Default);
    Console.WriteLine(s=read.ReadToEnd());
                
}
string pathWrite = @"E:\File\test2.txt";
if (!File.Exists(pathWrite))
{   
    FileInfo file = new FileInfo(pathWrite);
    file.Delete();
    file.Create();
}
StreamWriter write = new StreamWriter(pathWrite);
write.Write(s);
write.Close();

这是简单的使用streamreader和streamwriter,中间需要注意:

(1).读取时需要设置编码格式,C#默认是Unicode,但是和本机的编码不同,需要统一编码。

(2).写入流需要关闭Close,否则不能将写入的保存在文本中。

2.对于非文本文件需要采用二进制流读写,保证完整性。

BinaryReaderBinaryWriter 类用于二进制文件的读写。

Stream stream=null;
byte[] bufbyte = null;
if (File.Exists(@"E:\File\Koala.jpg"))
{
    FileStream readStream = new FileStream(@"E:\File\Koala.jpg", FileMode.Open);
    BinaryReader binaryStream = new BinaryReader(readStream);
    long size=binaryStream.BaseStream.Length;
    bufbyte = new byte[size];
    bufbyte=binaryStream.ReadBytes((int)size);
}
string writePath = @"E:\File\KoalaCopy.jpg";
if (!File.Exists(writePath))
{
    FileInfo jpg = new FileInfo(writePath);
    jpg.Create();
}
FileStream writerStream = new FileStream(writePath,FileMode.Open,FileAccess.ReadWrite);
BinaryWriter writer = new BinaryWriter(writerStream);
writer.Write(bufbyte);

这段代码是为了copy本地的一张图片,使用了binaryreader/brinarywriter,这里写法还是需要优化的使用using可以在使用完成后将流进行关闭。

这里只是实现了copy。还有在强制转换long-->int过程中,如果文件过大可能会出现异常,就算能运行过但产生文件是残缺的。

1.文件的读写可以使用:DirectoryoryInfo/fileinfo

DirectoryInfo info = new DirectoryInfo(@"E:\File");
FileInfo[] ary = info.GetFiles();
foreach (FileInfo ar in ary)
{
    string s=ar.Name;
    Console.WriteLine("exit file:"+ s);
}

这里只用了从file文件夹下所有文件名字的取得。

DirectoryoryInfo/fileinfo还能增加、删除、修改文件,的到文件的详细信息等方法。

优质内容筛选与推荐>>
1、'ACTION_BIND_CLASS' => True,
2、[leetCode]Binary Tree Maximum Path Sum
3、我回学校了~
4、office
5、F - 娜娜梦游仙境系列——多民族王国


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn