C# 文件基本操作

概括的说,File,FileInfo,FileStream是用于文件 I/O 的类,StreamReader是用于从流读取和写入流的类,使用之前都需using System.IO。

先定义一个TXT文档路径: string txtpath = (@"D:\C#练习\1.txt");  要读入这个文档。

(1)File 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream。

FileStream fs = File.Open(txtpath, FileMode.Open);

File可以直接调用各种方法(Open、Delete、Exists等)

例如: if (File.Exists(txtpath))
            {
                File.Delete(txtpath);
            }

(2)FileInfo 提供用于创建、复制、删除、移动和打开文件的实例方法,并协助创建 FileStream。

FileInfo fi = new FileInfo(txtpath); //实例化

FileStream fs = fi.Open();

(3)FileStream 支持通过其 Seek 方法随机访问文件。默认情况下,FileStream 以同步方式打开文

件,但它也支持异步操作。

利用FileStream 我们可以得到一个文件的Streams,接着就是来读取。

(4)StreamReader 通过使用 Encoding 进行字符和字节的转换,从 Streams 中读取字符。

StreamWriter 通过使用 Encoding 将字符转换为字节,向 Streams 写入字符。

StreamReader sr = new StreamReader(fs);

string str = null;
            string temp=null;
            while((temp=sr.ReadLine())!=null)
            {
               str+=" "+temp;
            }

得到一个字符串,再可以对字符串进行处理。

PS:

TextReader 是 StreamReader 和 StringReader 的抽象基类。抽象 Stream 类的实现用于字节输入和输出,而 TextReader 的实现用于 Unicode 字符输出。

TextWriter 是 StreamWriter 和 StringWriter 的抽象基类。抽象 Stream 类的实现用于字节输入和输出,而 TextWriter 的实现用于 Unicode 字符输出。

(5)directory 类

公开用于创建、移动和枚举通过目录和子目录的静态方法。 此类不能被继承。

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
//File类 ,  FileStream类
            string path = @"e:\temp\MyTest.txt";

            // Delete the file if it exists.
            if (File.Exists(path))
            {
                File.Delete(path);
            }

            //Create the file.
            using (FileStream fs = File.Create(path))
            {
                AddText(fs, "This is some text");
                AddText(fs, "This is some more text,");
                AddText(fs, "\r\nand this is on a new line");
                AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");

                for (int i = 1; i < 120; i++)
                {
                    AddText(fs, Convert.ToChar(i).ToString());

                }
            }

            //Open the stream and read it back.
            using (FileStream fs = File.OpenRead(path))
            {
                byte[] b = new byte[1024];
                UTF8Encoding temp = new UTF8Encoding(true);
                while (fs.Read(b, 0, b.Length) > 0)
                {
                    Console.WriteLine(temp.GetString(b));
                }
            }
        }

        private static void AddText(FileStream fs, string value)
        {
            byte[] info = new UTF8Encoding(true).GetBytes(value);
            fs.Write(info, 0, info.Length);
        }
时间: 2024-08-29 13:58:52

C# 文件基本操作的相关文章

java RandomAccessFile类文件基本操作

RandomAccessFile类是java中仿C的文件操作方法,下面通过实例演示RandomAccessFile类对文件的基本操作,深入了解请查看Java API文档.(注:RandomAccessFile类大多不被采用) 上代码 import java.io.*; public class AccessFileDemo { public static void main(String[] args) { Student stu1=new Student("Zhang San",10

目录结构及文件基本操作

目录结构及文件基本操作 Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介

Linux 基础入门----目录结构及文件基本操作

Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介质为主的,主要以盘符(C

linux帮助,文件基本操作,备份命令,vi编辑器

认识linux命令:帮助:文件基本操作:备份命令:vi编辑器的使用 1.认识linux命令 1)linux命令是完成一类功能,选项完成具体. 2)命令----shell(命令解释器)-----内核(kernel)这是命令执行过程: 根据命令是否是shell的一部分,将命令分为内部命令和外部命令:内部是shell的一部分,外部命令是由安装软件提供. 3)命令的通用格式:命令  [选项]  [参数] "-选项",短格式:"--选项",长格式,多个短格式可以合并. []:

java之文件基本操作

java之文件基本操作 1 使用 BufferedReader 在控制台读取字符 public static void readChar() throws IOException{ char c; InputStreamReader stream=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(stream); System.out.println("Enter characters,'q' to qu

4.2Python文件基本操作2:tell、seek

文件基本操作2:tell.seek 遍历方法之一:迭代器Readlines方法缺点:readlines是把文件变成列表形式存入内存里面,如果文件很大,一下子全部变成列表,系统负担太重,所以readlines不常使用. # -*-coding:utf-8 -*- __author__ = 'xiaojiaxin' __file_name__ = 'file3' #Readlines方法缺点:readlines是把文件变成列表形式存入内存里面,如果文件很大,一下子全部变成列表,系统负担太重,所以re

从零开始的Python学习Episode 7——文件基本操作

文件基本操作 一.打开文件 f = open('11','r')#open('file path','mode') 创建一个文件对象 文件有多种打开模式: 1. 'r':新建一个文件对象以只读方式打开文件.读文件的指针将会放在文件的开头. f = open('11','r')#open('file path',mode') data = f.read() print(data)f.close() #输出123456789 2.'w':新建一个只用于写文件的文件对象 f = open('11','

Linux 目录结构及文件基本操作

整理来自 https://www.shiyanlou.com/courses/running/59 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区的来实现文件管理,然后之下才是目录,目录就显得不是那

linux—【绝对路径与相对路径】与【【文件基本操作】】(4)

[绝对路径与相对路径] 绝对路径:我们在获得一个文件的时候,从根目录到二级到更多级目录都写全了, 终才找到这个文件,这种方式就是“绝对路径” 相对路径:目标文件与我本身文件的相对位置 当前目录:./    . 上级目录:../   .. 上两级目录 : ../../ /home/shuhua/beijing/haidian/shangdi 我想要去“haidian”目录 cd haidian cd  ../    通过“相对路径”达到haidian cd  /home/shuhua/beijin

Linux目录结构及文件基本操作

Linux目录结构 Linux与Windows目录结构的区别,一种是体现在目录与存储介质的关系上.以往的Windows一直以存储介质为主,主要以盘符(C盘,D盘)及分区的来实现文件管理,然后之下才是目录,.因此目录则显得不是很重要,除系统文件之外的用户文件放在任何地方任何目录也没多大关系.所以通常Windows在使用一段时间后,磁盘上面的文件目录会显得杂乱无章.然而Unix/Linux恰好相反,Unix是以目录为主的,Linux也继承了这一优良特性.Linux是以树形目录结构的形式来构建整个系统