2012-04-09 28 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