469,275 Members | 1,871 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,275 developers. It's quick & easy.

Read,write a file binary

How do I read, write a file binary?
I want to open, say, file.exe read it in to the program, then write it out
to file2.exe.
Like file copy, anyone have a code sample?
Nov 15 '05 #1
8 30688
Patrick,

File.Copy.

More general: BinaryReader/BinaryWriter.
Best regards,

Henrik Dahl

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:uB**************@TK2MSFTNGP12.phx.gbl...
How do I read, write a file binary?
I want to open, say, file.exe read it in to the program, then write it out
to file2.exe.
Like file copy, anyone have a code sample?

Nov 15 '05 #2
I've looked at them, but the exampel, wish I always use aren't very good
"Henrik Dahl" <Th**********************@inet.uni2.dk> skrev i meddelandet
news:uA**************@TK2MSFTNGP11.phx.gbl...
Patrick,

File.Copy.

More general: BinaryReader/BinaryWriter.
Best regards,

Henrik Dahl

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:uB**************@TK2MSFTNGP12.phx.gbl...
How do I read, write a file binary?
I want to open, say, file.exe read it in to the program, then write it out to file2.exe.
Like file copy, anyone have a code sample?


Nov 15 '05 #3
Here ya go,

You will need to clean that up a little bit, but its a works...

-- Read

FileStream fs = new FileStream(@"C:\calc.exe", FileMode.OpenOrCreate,
FileAccess.Read);
byte[] MyData= new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();

-- Write

FileStream fs1 = new FileStream(@"C:\calc1.exe", FileMode.OpenOrCreate,
FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs1);
bw.Write(MyData);
bw.Close();
fs1.Close();

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:ej**************@TK2MSFTNGP10.phx.gbl...
I've looked at them, but the exampel, wish I always use aren't very good
"Henrik Dahl" <Th**********************@inet.uni2.dk> skrev i meddelandet
news:uA**************@TK2MSFTNGP11.phx.gbl...
Patrick,

File.Copy.

More general: BinaryReader/BinaryWriter.
Best regards,

Henrik Dahl

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:uB**************@TK2MSFTNGP12.phx.gbl...
How do I read, write a file binary?
I want to open, say, file.exe read it in to the program, then write it out to file2.exe.
Like file copy, anyone have a code sample?



Nov 15 '05 #4
Pramod,

Looks OK, but it could benefit from e.g. the following:

*) Use a BinaryReader for reading.
*) use using instead of instantiate ... Close. In this case disposing object
also work in case an exception should be thrown plus it's much more
declarative by nature.
*) Use (int) instead of System.Convert.ToInt32.

Additionally it may be advantageous to use the BitConverter class.
Best regards,

Henrik Dahl

"Pramod Anchuparayil" <pr**********@hotmail.com> wrote in message
news:e4***************@TK2MSFTNGP10.phx.gbl...
Here ya go,

You will need to clean that up a little bit, but its a works...

-- Read

FileStream fs = new FileStream(@"C:\calc.exe", FileMode.OpenOrCreate,
FileAccess.Read);
byte[] MyData= new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();

-- Write

FileStream fs1 = new FileStream(@"C:\calc1.exe", FileMode.OpenOrCreate,
FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs1);
bw.Write(MyData);
bw.Close();
fs1.Close();

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:ej**************@TK2MSFTNGP10.phx.gbl...
I've looked at them, but the exampel, wish I always use aren't very good
"Henrik Dahl" <Th**********************@inet.uni2.dk> skrev i meddelandet news:uA**************@TK2MSFTNGP11.phx.gbl...
Patrick,

File.Copy.

More general: BinaryReader/BinaryWriter.
Best regards,

Henrik Dahl

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:uB**************@TK2MSFTNGP12.phx.gbl...
> How do I read, write a file binary?
> I want to open, say, file.exe read it in to the program, then write
it out
> to file2.exe.
> Like file copy, anyone have a code sample?
>
>



Nov 15 '05 #5
Henrik Dahl <Th**********************@inet.uni2.dk> wrote:
Looks OK, but it could benefit from e.g. the following:

*) Use a BinaryReader for reading.
What's the benefit there? I believe BinaryReader and BinaryWriter are
really there to make it easier to read and write primitives, not blocks
at a time.
*) use using instead of instantiate ... Close. In this case disposing object
also work in case an exception should be thrown plus it's much more
declarative by nature.
*) Use (int) instead of System.Convert.ToInt32.

Additionally it may be advantageous to use the BitConverter class.


Why?

Actually, I'd write it something like:

using (FileStream input = new FileStream (...))
{
using (FileStream output = new FileStream (...))
{
byte[] buffer = new byte[16384];
int len;
while ( (len=input.Read (buffer, 0, buffer.Length)) > 0)
{
output.Write (buffer, 0, len);
}
}
}

That way you don't need to read the whole lot into memory at a time.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet/
If replying to the group, please do not mail me too
Nov 15 '05 #6
Thanks everyone!
Nov 15 '05 #7

"Jon Skeet" <sk***@pobox.com> wrote in message
news:MP************************@news.microsoft.com ...
Henrik Dahl <Th**********************@inet.uni2.dk> wrote:
Looks OK, but it could benefit from e.g. the following:

*) Use a BinaryReader for reading.
What's the benefit there? I believe BinaryReader and BinaryWriter are
really there to make it easier to read and write primitives, not blocks
at a time.


Yes, but often people have some order in their bytes where it's possible to
take advantage of these services.
*) use using instead of instantiate ... Close. In this case disposing object also work in case an exception should be thrown plus it's much more
declarative by nature.
*) Use (int) instead of System.Convert.ToInt32.

Additionally it may be advantageous to use the BitConverter class.
Why?


Same argument as before plus if the current architecture lets him to do it
at a higher abstration level.

Actually, I'd write it something like:

using (FileStream input = new FileStream (...))
{
using (FileStream output = new FileStream (...))
{
byte[] buffer = new byte[16384];
int len;
while ( (len=input.Read (buffer, 0, buffer.Length)) > 0)
{
output.Write (buffer, 0, len);
}
}
}

That way you don't need to read the whole lot into memory at a time.
I agree in your comment, but if this is the real thing to achieve I would
just use File.Copy. If the point just is to do the copying there's no point
in neither BinaryReader or BitConverter of course.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet/
If replying to the group, please do not mail me too

Nov 15 '05 #8
Patrik,

Have you installed the .NET framework on the machine where you got this
error message?
Best regards,

Henrik Dahl

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:eq**************@TK2MSFTNGP12.phx.gbl...
I'll tried that code, ´but when I was trying to start calc1.exe, it sayed
that calc1.exe doesn't are a Win32 program, sorrym but I'm no good at C#.
"Pramod Anchuparayil" <pr**********@hotmail.com> skrev i meddelandet
news:e4*************@TK2MSFTNGP10.phx.gbl...
Here ya go,

You will need to clean that up a little bit, but its a works...

-- Read

FileStream fs = new FileStream(@"C:\calc.exe", FileMode.OpenOrCreate,
FileAccess.Read);
byte[] MyData= new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();

-- Write

FileStream fs1 = new FileStream(@"C:\calc1.exe", FileMode.OpenOrCreate,
FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs1);
bw.Write(MyData);
bw.Close();
fs1.Close();

"Patrik Malmström" <po*****@popsork.com> wrote in message
news:ej**************@TK2MSFTNGP10.phx.gbl...
I've looked at them, but the exampel, wish I always use aren't very good "Henrik Dahl" <Th**********************@inet.uni2.dk> skrev i meddelandet news:uA**************@TK2MSFTNGP11.phx.gbl...
> Patrick,
>
> File.Copy.
>
> More general: BinaryReader/BinaryWriter.
>
>
> Best regards,
>
> Henrik Dahl
>
> "Patrik Malmström" <po*****@popsork.com> wrote in message
> news:uB**************@TK2MSFTNGP12.phx.gbl...
> > How do I read, write a file binary?
> > I want to open, say, file.exe read it in to the program, then
write
it out
> > to file2.exe.
> > Like file copy, anyone have a code sample?
> >
> >
>
>



Nov 15 '05 #9

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by blip | last post: by
1 post views Thread by Magix | last post: by
4 posts views Thread by Feng Chun | last post: by
7 posts views Thread by Mike Stephens | last post: by
3 posts views Thread by I_AM_DON_AND_YOU? | last post: by
3 posts views Thread by erictran | last post: by
5 posts views Thread by sheriff | last post: by
4 posts views Thread by Bruno | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.