BinaryWriter and filesize limit. Is there any?

T

ThunderMusic

Hi,
In my app, I open a file using a FileStream then pass it to a
BinaryWriter. I then use the BinaryWriter instance to write to my file. But
a problem arose : The file never gets bigger than 1kb. The code calls the
bw.write(TheValue), but nothing is written after 1kb. I'm I missing
something?

Here's the way I create my FileStream and BinaryWriter :

Filename = System.Environment.CurrentDirectory() & "\msec.dat"
fs = System.IO.File.OpenWrite(Filename)
bw = New System.IO.BinaryWriter(fs)

When I write I do:

bw.write(TheValueToWrite)

And when done writing, I do :

bw.close
fs.close

Am I missing something?

Thanks

ThunderMusic
 
G

Guest

What's "TheValueToWrite" defined as? Are you just writing one value?

Scott Swigart
VB - MVP
 
T

ThunderMusic

hi,
no, I'm not writing just 1 value... the "TheValueToWrite" was just a name I
put there because it could be almost any base type : string, bit, byte,
int16, int32, int64, et al. I go through many steps and would have to write
from 2k to about 500k (I don't think it will go higher than that, but it
could).

For now, I write almost just strings, int32 and booleans but it could be
anything...

thanks

ThunderMusic
 
G

Guest

There shouldn't be anything special beyond what you're doing. Here's a
console app that writes out about 4MB using the same technique.

Imports System.IO

Module Module1

Sub Main()
Dim data As String = "0123456789012345678901234567890123456789"
Dim filename As String = System.Environment.CurrentDirectory() &
"\msec.dat"
Dim fs As Stream = File.Open(filename, FileMode.Create,
FileAccess.Write)
Dim b As New BinaryWriter(fs)

For i As Integer = 1 To 100000
b.Write(data)
Next

b.Close()
fs.Close()
End Sub

End Module
 
C

Cor Ligthert [MVP]

thunderbyte,
In my app, I open a file using a FileStream then pass it to a
BinaryWriter. I then use the BinaryWriter instance to write to my file.
But
a problem arose : The file never gets bigger than 1kb. The code calls the
bw.write(TheValue), but nothing is written after 1kb. I'm I missing
something?

Strange, if I use your code to write 15Kb of bytes I get 15Kb

Cor
 
C

Chris Dunaway

Is it possible that when you write TheValueToWrite to the file, you are
overwriting what is already in the file? Try opening the file stream
in Append mode so that subsequent writes are appended to the end of the
current file.
 
T

ThunderMusic

hi,
Finaly, I found my problem was because while the app was running the
application path was changing, so the file was not writing at the same place
anymore. So when I was looking back to the file that was written (before the
path change) it was 1k long (just a coincidence it was exactly this long),
but the other one (written later in the app process, after the path change)
was containing all the required data.

I replaced the application path with a constant path and now it works fine.

Sorry for bothering and thanks for all the help you provided

ThunderMusic
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top