zoukankan      html  css  js  c++  java
  • C#文件操作

      文件是永久存储在磁盘等介质上的一主数据。文件的类型分类,按存储方式及结构,可分为顺序文件和随机文件;按文件数据的组织格式,可分为ASCII 文件 和 二进制文件。

    文件编码:

        编码是一个将一组Unicode 字符串转换成一个字节序列的过程,解码是一个反向操作过程,将一个编码字节序列转换成一组Unicode字符。

        文件编码,也称字符编码,用于指定在处理文本时如何表示字符。

             C#里面提供了一个面向对象的方法访问文件系统,它在system.IO 里面常用的几个类 FileStream、StreamReader、StreamWriter等等。

             C#将文件看成是顺序的字节流,也称文件流。文件流是字节序列的抽象概念,文件可以看成是存储在磁盘上的一系列二进制字节信息,C#用文件流对其进行输入输出操作,如读取文件信息,向文件写入信息。 

            使用FileStream 类可以产生文件流,可以对文件进行读取、写入、打开和关闭操作。其数据是字节流,只能进行字节的读写。如果要对文本数据读写,就要使用System.IO里的SreamReader类。它提供了文本数据的读写方法,它是类似一种特定的编码从字节流中读取字符。

           二进制文件操作类似,通过BinaryReader 和 BinaryWriter实现

         FileStream的好处是 可以对任何文件进行读写 ,比如 可以创建Excel 文件 ,直接将文件的 后缀名改为 xls 就行了。 但是他的缺陷是它是以字节的形式操作的,如果是像文本这种 使用特定的编码格式的文件 ,就需要对一个个字符进行处理 。而这种时候 我们一般使用 StreamRead StreamWrite 。 

     在这里先要说明一个问题 : 字节编码标记。 

               对于文本格式的文件,可能的编码方式 是ASCII (一个字节表示一个字符 )  或者基于 Unicode 的任何格式 。 Unicode、 UTF7、UTF8、和UTF32 。WindowsNT 、2000、XP、2003、Visa、Windows Server2008、Win7、win8 都支持Unicode 。 所以文本文件除了包含ASCII 数据外,理论上可以包含Unicode UTF7 UTF8 或 UTF32 数据 。其约定是如果文件是ASCII 格式,他就只包含文本。 如果文件是 Unicode格式 ,就用文件的前两个或三个字节来表示,这几个字节可以设置为表示文件中格式 的值的特定组合。 这些字节称为 字节码标记 。使用标准windows 应用程序打开文件时 Notepad ,wordpad 程序会自动 识别不同的编码格式。 正确的读取文件 。 StreamRead 类也能正确的读取任何格式的文件 ,也可以使用任何一种编码格式化 它要输出的文本 。FileStream 读取和显示文本就要自己处理这个过程。

     关于GBK 文件编码格式。

      序列化和反序列化

       序列化用于将对象的状态存储到文件中。在这一过程中对象的公共字段和私有字段以及类的名称都被转换成字节流,然后写入数据流。

       反序列化将对象还原其以前的状态,首先创建用于读取的文件流和格式接口,然后用格式接口反序列化该对象。

    string[] strs= System.IO.Directory.GetFileSystemEntries(Application.dataPath); 返回这个路径下的所有实体文件名

    Application.dataPath 到Assets 的路径 包括 Assets

    AssetDatabase.GetAssetPath(objs[0]) Assets 下的路径 包括Assets

  • 相关阅读:
    JSP error: Only a type can be imported
    关于JAVA插入Mysql数据库中文乱码问题解决方案
    MySQL SQL优化——分片搜索
    myeclipse 调试JSP页面
    jsp:usebean 常用注意事项
    spring XML格式
    VB 要求对象
    VB 对象变量或with块变量未设置
    Spring依赖注入
    Spring 读取XML配置文件的两种方式
  • 原文地址:https://www.cnblogs.com/bambomtan/p/4403338.html
Copyright © 2011-2022 走看看