BinaryWriter writes empty file
-
Hi, I'm trying to write a binary file, using BinaryWriter. My code does write a file, but it is empty. This is the code I'm using:
FileStream^ fs = gcnew FileStream(Convert::ToString(fileName), FileMode::Create); BinaryWriter^ w = gcnew BinaryWriter(fs); int rows = fileData->GetLength(0); int cols = fileData->GetLength(1); try { for (int row = 0; row < rows; row++){ for (int col = 0; col < cols; col++){ w->Write(fileData\[row,col\]); } } } finally { w->Close(); fs->Close(); }
Does anyone have a clue why the written files is empty? Thanks!
-
Hi, I'm trying to write a binary file, using BinaryWriter. My code does write a file, but it is empty. This is the code I'm using:
FileStream^ fs = gcnew FileStream(Convert::ToString(fileName), FileMode::Create); BinaryWriter^ w = gcnew BinaryWriter(fs); int rows = fileData->GetLength(0); int cols = fileData->GetLength(1); try { for (int row = 0; row < rows; row++){ for (int col = 0; col < cols; col++){ w->Write(fileData\[row,col\]); } } } finally { w->Close(); fs->Close(); }
Does anyone have a clue why the written files is empty? Thanks!
I forgot to mention that
fileData
is anarray<String^,2>^
-
Hi, I'm trying to write a binary file, using BinaryWriter. My code does write a file, but it is empty. This is the code I'm using:
FileStream^ fs = gcnew FileStream(Convert::ToString(fileName), FileMode::Create); BinaryWriter^ w = gcnew BinaryWriter(fs); int rows = fileData->GetLength(0); int cols = fileData->GetLength(1); try { for (int row = 0; row < rows; row++){ for (int col = 0; col < cols; col++){ w->Write(fileData\[row,col\]); } } } finally { w->Close(); fs->Close(); }
Does anyone have a clue why the written files is empty? Thanks!
-
Try running it in the debugger to check that you actually have some data and that it is being written to your file.
It's time for a new signature.
Thanks for your answer Richard. I tried running in the debugger. I do have some data to write to the file. How can I check whether it is actually written to the file? When I check the file in Windows Explorer it stays at 0kb.
-
Thanks for your answer Richard. I tried running in the debugger. I do have some data to write to the file. How can I check whether it is actually written to the file? When I check the file in Windows Explorer it stays at 0kb.
I don't know what is happening with your file, I just tried a similar test and the file was written correctly. All I can suggest is that you step through your program to ensure the values actually get written, and also that no other part of your program destroys the file.
It's time for a new signature.
-
I don't know what is happening with your file, I just tried a similar test and the file was written correctly. All I can suggest is that you step through your program to ensure the values actually get written, and also that no other part of your program destroys the file.
It's time for a new signature.
That's strange. I'll try it on another computer, maybe that helps. Thanks a lot for your help anyway!
-
Hi, I'm trying to write a binary file, using BinaryWriter. My code does write a file, but it is empty. This is the code I'm using:
FileStream^ fs = gcnew FileStream(Convert::ToString(fileName), FileMode::Create); BinaryWriter^ w = gcnew BinaryWriter(fs); int rows = fileData->GetLength(0); int cols = fileData->GetLength(1); try { for (int row = 0; row < rows; row++){ for (int col = 0; col < cols; col++){ w->Write(fileData\[row,col\]); } } } finally { w->Close(); fs->Close(); }
Does anyone have a clue why the written files is empty? Thanks!
Hi, two guesses: 1. you are looking at the wrong folder; is it a relative path? is your current directory what you think it is? add a
w->Write(1);
early on to make sure there is some data, so the file size and modifiction date must change. 2. not sure whatConvert::ToString(fileName)
is supposed to do. Have a go with a simple "aha.dat" :)Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
Prolific encyclopedia fixture proof-reader browser patron addict?
We all depend on the beast below.
-
Hi, two guesses: 1. you are looking at the wrong folder; is it a relative path? is your current directory what you think it is? add a
w->Write(1);
early on to make sure there is some data, so the file size and modifiction date must change. 2. not sure whatConvert::ToString(fileName)
is supposed to do. Have a go with a simple "aha.dat" :)Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]
Prolific encyclopedia fixture proof-reader browser patron addict?
We all depend on the beast below.
Hi Luc, I found out that something was going wrong with my
fileName
indeed. Its working now. Thanks a lot for your help! -
Hi Luc, I found out that something was going wrong with my
fileName
indeed. Its working now. Thanks a lot for your help!As I suggested yesterday, you should always run through your code with the debugger to ensure that all your variables contain the correct values. When you said the file size was zero, you did not mention that the create time had not been changed. That would have been a good clue that the file was not being written.
It's time for a new signature.
-
As I suggested yesterday, you should always run through your code with the debugger to ensure that all your variables contain the correct values. When you said the file size was zero, you did not mention that the create time had not been changed. That would have been a good clue that the file was not being written.
It's time for a new signature.
Well, the file was actually written, so the create time changed. It was only the referece where to write the data to that as wrong, and that I didn't catch when stepping through the code. But now it works. Thanks again for the help!