//http://tinyerp.codeplex.com/
//GNU Library General Public License (LGPL)
//-----------------------------------------------------------------------
// <copyright file="SysUtil.cs" company="Pyramid Consulting">
// Copyright (c) Pyramid Consulting. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace Bamboo.Core.Common
{
public class SysUtil
{
/// <summary>
/// get the byte array from a string using default encoding
/// </summary>
/// <param name="strData">source string</param>
/// <returns>converted array</returns>
public static byte[] StringToBytes(String strData)
{
return System.Text.Encoding.GetEncoding(0).GetBytes(strData);
}
}
}
File Stream
Convert a byte array to string using default encoding
//http://tinyerp.codeplex.com/
//GNU Library General Public License (LGPL)
//-----------------------------------------------------------------------
// <copyright file="SysUtil.cs" company="Pyramid Consulting">
// Copyright (c) Pyramid Consulting. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Text;
namespace Bamboo.Core.Common
{
public class SysUtil
{
/// <summary>
/// convert a byte array to string using default encoding
/// </summary>
/// <param name="bData">the content of the array</param>
/// <returns>converted string</returns>
public static String BytesToString(byte[] bData)
{
return System.Text.Encoding.GetEncoding(0).GetString(bData);
}
}
}
illustrates use of BufferedStreams
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
Example15_14.cs illustrates use of BufferedStreams
*/
using System;
using System.Windows.Forms;
using System.IO;
public class Example15_14
{
[STAThread]
public static void Main()
{
// use an open file dialog to get a filename
OpenFileDialog dlgOpen = new OpenFileDialog();
dlgOpen.Title="Select file to back up";
if (dlgOpen.ShowDialog() == DialogResult.OK)
{
// create the raw streams
FileStream inStream = File.OpenRead(dlgOpen.FileName);
FileStream outStream =
File.OpenWrite(dlgOpen.FileName + ".bak");
// add a buffering layer
BufferedStream bufInStream = new BufferedStream(inStream);
BufferedStream bufOutStream = new BufferedStream(outStream);
byte[] buf = new byte[4096];
int bytesRead;
// copy all data from in to out via the buffer layer
while ((bytesRead = bufInStream.Read(buf, 0, 4096)) > 0)
bufOutStream.Write(buf, 0, bytesRead);
// clean up
bufOutStream.Flush();
bufOutStream.Close();
bufInStream.Close();
outStream.Close();
inStream.Close();
}
}
}
Create a FileStream for the BufferedStream.
using System;
using System.IO;
class BufStreamApp
{
static void Main(string[] args)
{
FileStream fs = new FileStream(“Hoo.txt”,FileMode.Create, FileAccess.ReadWrite);
BufferedStream bs = new BufferedStream(fs);
Console.WriteLine(“Length: {0} Position: {1}”,bs.Length, bs.Position);
for (int i = 0; i < 64; i++) { bs.WriteByte((byte)i); } Console.WriteLine("Length: {0} Position: {1}", bs.Length, bs.Position); byte[] ba = new byte[bs.Length]; bs.Position = 0; bs.Read(ba, 0, (int)bs.Length); foreach (byte b in ba) { Console.Write("{0,-3}", b); } string s = "Foo"; for (int i = 0; i < 3; i++) { bs.WriteByte((byte)s[i]); } Console.WriteLine(" Length: {0} Position: {1} ",bs.Length, bs.Position); for (int i = 0; i < (256-67)+1; i++) { bs.WriteByte((byte)i); } Console.WriteLine(" Length: {0} Position: {1} ", bs.Length, bs.Position); bs.Close(); } } [/csharp]
BitConvert in action
using System;
using System.IO;
using System.Text;
class Test
{
public static void Main()
{
using (StreamWriter output = new StreamWriter("practice.txt"))
{
// Create and write a string containing the symbol for Pi.
string srcString = "Area = u03A0r^2";
// Convert the UTF-16 encoded source string to UTF-8 and ASCII.
byte[] utf8String = Encoding.UTF8.GetBytes(srcString);
byte[] asciiString = Encoding.ASCII.GetBytes(srcString);
// Write the UTF-8 and ASCII encoded byte arrays.
output.WriteLine("UTF-8 Bytes: {0}", BitConverter.ToString(utf8String));
output.WriteLine("ASCII Bytes: {0}", BitConverter.ToString(asciiString));
Console.WriteLine(BitConverter.ToString(utf8String));
Console.WriteLine(BitConverter.ToString(asciiString));
}
}
}
Use BitConvert to convert String, Boolean and Int32
using System;
using System.IO;
class Test {
public static void Main() {
byte[] b = BitConverter.GetBytes(true);
Console.WriteLine(BitConverter.ToString(b));
Console.WriteLine(BitConverter.ToBoolean(b,0));
b = BitConverter.GetBytes(3678);
Console.WriteLine(BitConverter.ToString(b));
// Convert a byte array to an int and display.
Console.WriteLine(BitConverter.ToInt32(b,0));
}
}
Read and Write a Binary File
using System;
using System.IO;
public class BinaryFileTest {
private static void Main() {
FileStream fs = new FileStream("test.dat", FileMode.Create);
BinaryWriter w = new BinaryWriter(fs);
w.Write(1.2M);
w.Write("string");
w.Write("string 2");
w.Write('!');
w.Flush();
w.Close();
fs.Close();
fs = new FileStream("test.dat", FileMode.Open);
StreamReader sr = new StreamReader(fs);
Console.WriteLine(sr.ReadToEnd());
fs.Position = 0;
BinaryReader br = new BinaryReader(fs);
Console.WriteLine(br.ReadDecimal());
Console.WriteLine(br.ReadString());
Console.WriteLine(br.ReadString());
Console.WriteLine(br.ReadChar());
fs.Close();
}
}