2012-04-09 82 views
1

我想读文件名在×10字节的启动和保存成位级 我写的是:在xna中读取文件二进制文件?

byte[] bitLevel = new byte[10]; 
using(FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) 
{ 
     fileStream.Read(bitLevel, x,10); 
     //some code 
} 

,但没有在位级,我失去了什么?

+1

也许不是直接处理比特,而是为FileStream制作StreamReader和StreamWriter。它们极大地简化了读/写功能。 – 2012-04-10 21:45:00

回答

2

更新: 这听起来像你的程序可能没有在文件的正确位置。在打开文件之前尝试添加以下内容以验证文件的完整路径以及是否存在。如果出现这种问题,请检查项目属性调试标签下的工作目录

fileName = Path.GetFullPath(fileName); 
System.Diagnostics.Debug.Assert(File.Exists(fileName), "Error: Could not find " + fileName); 

函数的第二个参数指定字节数组偏移量,所读取的字节将被放置。它没有在要读取的流中指定偏移量。使用查找函数来设置流的读取位置。

using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) 
{ 
    fileStream.Seek(x, SeekOrigin.Begin); 
    fileStream.Read(bitLevel, 0, 10); 
    //some code 
} 
+0

它仍然无法阅读:| – Sunary 2012-04-09 13:55:49

+0

@Sunary有什么异常?或bitLevel只是空的?顺便问一下,你确定你的文件路径正确吗?在Windows之外获取文件的路径是使用普通旧流的颈部疼痛 – 2012-04-10 00:24:31

+0

我认为它不能使用(){},因为我设置了test的值:using(){test = 1;},但不变? – Sunary 2012-04-10 01:50:31