精华内容
下载资源
问答
  • unity - 二进制文件操作-存储与读取

    万次阅读 2016-09-05 20:08:10
    目标:实现数据存储为二进制文件,然后通过二进制文件解析数据。 目标分为三个阶段:1、将数据...阶段一:将数据结构转化为二进制有两种方式:1:利用C#的BinaryWrite,2:使用函数把数据转化成byte数组,然后在写入

    目标:实现数据存储为二进制文件,然后通过二进制文件解析数据。

    目标分为三个阶段:1、将数据结构转化为二进制(至于数据是怎样读取进来的这个就不说了,因为方式比较多,但是读取进来一定都会以特定的数据结构形式来保存)。2、加载二进制文本。3、加载为对应的数据结构。


    阶段一:将数据结构转化为二进制有两种方式:1:利用C#的BinaryWrite,2:使用函数把数据转化成byte数组,然后在写入。

    方法1:

    public bool SaveBinaryFile(string _path, string _name, TextAsset t){
    		
    		string content = t.text;
    	
    		//二进制文件流信息
    		BinaryWriter bw = new BinaryWriter(new FileStream (_path + _name, FileMode.Create));;
    
    		FileStream fs = new FileStream (_path + _name, FileMode.Create);
    
    		try {
    
    			bw = new BinaryWriter(new FileStream (_path + _name, FileMode.Create));
    
    
    		}catch(IOException e){
    
    			Debug.Log (e.Message);
    
    		}
    		try {
    
    			bw.Write(content);
    
    		}catch(IOException e){
    
    			Debug.Log (e.Message);
    
    		}
    		debugInfo += "文件创建成功!\n";
    
    		return true;
    
    	}
    说明:这种方法代码也没几行,方式也很好理解,我把过程封装成函数,传入路径和文件名即可(温馨提示:unity里面二进制存在StreamingAssets文件夹里面,若不懂可百度,有很多资源)。

    为了让大家更好的理解我把路径贴出来:

    private string name = "1.bytes";
    
    public static readonly string path = Application.streamingAssetsPath + "/";

    方法2:

    string path = Application.streamingAssetsPath + "/";
    string name = "2.bytes";
    int a = 15;
    byte[] b = BitConverter.GetBytes (a);
    File.WriteAllBytes (path + name, b);
    说明:这种方法简单方便,利用System.Text下的BitConverter将其他类型的转化为二进制类型[特殊:不包括String类型的转化,string转化用Encoding.UTF8.GetBytes即可]。


    这样阶段一就完成了。


    阶段二:

    加载二进制文本采用www加载,目前我知道唯一简单方便的加载方式,如果有更好的加载方式还请指教。

    用www加载需要用到协程,如果对协程不是很懂的同学请自行查询(记得以前写过一篇但是没找到,有时间也会整理一篇)。下面是加载代码。

    IEnumerator wwwLoad(string _path, Action<byte[]> action){
    
    		#if UNITY_EDITOR || UNITY_IOS
    		_path = "file://" + _path;
    		#endif
    		
    		WWW www = new WWW (_path);
    
    		yield return www;
    
    		action (www.bytes);
    	}

    注意点:下载的路径有所变化,详细了解可以去看看Unity的平台路径,因为与本文无关,不多说了。这里我用了回调,只是习惯,当然也可以等WWW下载完成后自行调用其他函数。


    阶段三:使用BinaryReader类解析二进制文件

    public void readByte(byte[] b){
    	using (BinaryReader br = new BinaryReader(new MemoryStream(b))){
    		int f = br.ReadInt32 ();
    		Debug.Log (f);
    	}
    }
    只需要使用使BinaryReader类中的函数来读取对一个类型的数据就可以了。



    至此,任务完成。

    展开全文
  • 你必须知道的495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    当我把函数指针赋向void*类型的时候,编译通不过。 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中,或者相反? *4.15 我怎样把一个int变量转换为char*型?我试了类型转换,但是不行。 第5...
  • 《你必须知道的495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    当我把函数指针赋向void *类型的时候,编译通不过。 51 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中,或者相反? 51 *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行...
  • 当我把函数指针赋向void *类型的时候,编译通不过。 51 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中,或者相反? 51 *4.15 我怎样把一个int变量转换为char *型?我试了类型转换,但是不行...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0198 将秒数转化成hh:mm:ss格式 129 0199 修改操作系统日期 130 0200 获取全球标准时间 130 第7章 数据处理技术 133 7.1 组件数据处理技术 134 0201 让两个文本框中的内容同时改变 134 0202 格式化...
  • 0198 将秒数转化成hh:mm:ss格式 129 0199 修改操作系统日期 130 0200 获取全球标准时间 130 第7章 数据处理技术 133 7.1 组件数据处理技术 134 0201 让两个文本框中的内容同时改变 134 0202 格式化...
  • 0198 将秒数转化成hh:mm:ss格式 129 0199 修改操作系统日期 130 0200 获取全球标准时间 130 第7章 数据处理技术 133 7.1 组件数据处理技术 134 0201 让两个文本框中的内容同时改变 134 0202 格式化...
  • 0198 将秒数转化成hh:mm:ss格式 129 0199 修改操作系统日期 130 0200 获取全球标准时间 130 第7章 数据处理技术 133 7.1 组件数据处理技术 134 0201 让两个文本框中的内容同时改变 134 0202 格式化...
  • 0198 将秒数转化成hh:mm:ss格式 129 0199 修改操作系统日期 130 0200 获取全球标准时间 130 第7章 数据处理技术 133 7.1 组件数据处理技术 134 0201 让两个文本框中的内容同时改变 134 0202 格式化...
  • 0198 将秒数转化成hh:mm:ss格式 129 0199 修改操作系统日期 130 0200 获取全球标准时间 130 第7章 数据处理技术 133 7.1 组件数据处理技术 134 0201 让两个文本框中的内容同时改变 134 0202 格式化...
  • o 5.9 我怎样把一个 int 变量转换为 char * 型?我试了类型转换, 但是不行。 * 6. 空 (null) 指针 o 6.1 臭名昭著的空指针到底是什么? o 6.2 怎样在程序里获得一个空指针? o 6.3 用缩写的指针比较 ``if(p)...
  • 你必须知道的495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    4.9 我怎样把一个int 变量转换为char * 型?我试了类型转换, 但是不 行。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 空(null) 指针21 5.1 臭名昭著的空指针到底是什么? . . . . . ...
  • flash shiti

    2014-03-14 10:32:41
    如果X为一字符串,则函数将X解释为一个指数形式的十进制数; D. 如果X未定义,则返回0。 41.按钮的属性有那些? A. 按钮的属性有UP; B. 按钮的属性有UP和OVER; C. 按钮的属性有DOWN; D. 按钮的属性有HIT. ...
  • 字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组...
  • 实例170 文件删除到回收站中 219 实例171 清空回收站 221 5.2 查找文件 222 实例172 搜索文件 222 实例173 检查文件是否存在 223 实例174 提取指定文件夹目录 224 实例175 查找文件 225 5.3 修改...
  • 实例170 文件删除到回收站中 223 实例171 清空回收站 225 5.2 查找文件 226 实例172 搜索文件 226 实例173 检查文件是否存在 227 实例174 提取指定文件夹目录 228 实例175 查找文件 229 5.3...
  • 实例170 文件删除到回收站中 223 实例171 清空回收站 225 5.2 查找文件 226 实例172 搜索文件 226 实例173 检查文件是否存在 227 实例174 提取指定文件夹目录 228 实例175 查找文件 229 5.3...
  • 6.5.1 方法1:数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 ...
  • 6.5.1 方法1:数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 ...
  • 6.5.1 方法1:数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 ...
  • 6.5.1 方法1:数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 ...
  • C#编程经验技巧宝典

    热门讨论 2008-06-01 08:59:33
    72 <br>0102 将字符串首字母转换大写 72 <br>0103 如何进行字节数组和字符串的相互转换 72 <br>0104 如何一个按空格分割的字符串存储在一个ArrayList数组中 73 <br>4.2 获取字符串信息 73 ...
  •  好了,通过第三章的学习,我们已经了解了一些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。 第四章 XML语法 七.DTD的语法...
  • 疯狂JAVA讲义

    2014-10-17 13:35:01
    另一个构造器里的代码复制、粘贴到这个构造器里不就可以了吗? 143 5.6 类的继承 144 5.6.1 继承的特点 144 5.6.2 重写父类的方法 145 5.6.3 父类实例的super引用 146 学生提问:我们只是创建了一个Ostrich...
  • asp.net知识库

    2015-06-18 08:45:45
    在C#里ArrayList转换为Array 或 Array转换为ArrayList C# 2.0 在.NET 2.0中,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C#...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。 用例图 关系 关联关系 ;依赖关系 ;泛化关系;关系的...
  • 从最简单的文本截断功能,到复杂的拖拽排序都应有尽有。业务使用的时候,经常会给 window 挂上 $,代码中组织也非常灵活,在需要复杂 dom 操作时,jQuery 总能帮忙轻松完成。 <p>...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

怎样把函数转化成文本