1
我试图从与BinaryReader
二进制文件读取。二进制阅读器跳过指令
这是我打电话给我的阅读方法:
foreach (Movie film in TreeBuilder.myMovies)
{
if (File.Exists(@"C:\Users\DaPhunk\Documents\Visual Studio 2010\Projects\YLK\Binary\" + film.MovieName + ".txt"))
{
string[] myArray = operationManager.BinaryReading(film.MovieName);
if (myArray != null)
{
this.textStarring.Text = myArray[1];
this.textProduced.Text = myArray[2];
this.textMusic.Text = myArray[3];
this.textYear.Text = myArray[4];
this.textTime.Text = myArray[5];
}
else
{
MessageBox.Show("An error occured");
}
}
这是我的阅读方法:
public string[] BinaryReading(string name)
{
FileStream myStream = new FileStream(@"C:\Users\DaPhunk\Documents\Visual Studio 2010\Projects\YLK\Binary\" + name + ".txt", FileMode.Open);
BinaryReader reader = new BinaryReader(myStream);
string loadString = reader.ReadString();
string[] loadArray = loadString.Split(',');
reader.Close();
myStream.Close();
return loadArray;
}
现在,这些行内的东西是行不通的。我的文件不是空的,因为它只是一个字符串,我可以读取文件中的内容。
我的问题是,我试图找到什么是错用一个破发点,但只要我闯过这一行:
string loadString = reader.ReadString();
我的程序开始再次运行。这怎么可能?这可以防止我检查我的String[]
中的内容以及方法调用后的值。
任何想法为什么?提前致谢。
更新:
我试着将我的breakpoint
这里
string[] loadArray = loadString.Split(',');
但我的计划从未停止,因此一直无法前行。
而且这是我的书面方式方法:
foreach (Movie film in TreeBuilder.myMovies)
{
if (film.MovieName == name)
{
FileStream myStream = new FileStream(@"C:\Users\DaPhunk\Documents\Visual Studio 2010\Projects\YLK\Binary\" + film.MovieName + ".txt", FileMode.Create);
BinaryWriter writer = new BinaryWriter(myStream);
writer.Write(film.MovieName + "," + starring + "," + produced + "," + music + "," + year + "," + lenght);
writer.Close();
myStream.Close();
}
}
我的转折点是在第一行(的foreach条件) – phadaphunk 2012-04-13 05:33:34
(上一个答案再评论);如果你用'BinaryWriter'编写了文件,你应该在问题中说清楚,你可能不应该调用'.txt'文件。 – 2012-04-13 05:45:11
谢谢你是这个问题。我更改了所有的.bin扩展名,并且一切正常。 只需将您的评论写为答案,以便我可以将其标记为已接受。 非常感谢! – phadaphunk 2012-04-13 05:48:00