⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12.1.txt

📁 《Microsoft Visual C# .NET 2003开发技巧大全》源代码
💻 TXT
字号:
Listing 12.1 Reversing a File with a MemoryStream
using System;
using System.IO;
namespace _10_MemoryStream
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
if( args.Length <= 0 || args.Length > 2 )
{
DisplayUsage();
return;
}
if( File.Exists( args[0] ) == false )
{
DisplayUsage();
return;
}
ReverseFile( args[0], args[1] );
return;
}
static void ReverseFile( string src, string dest )
{
// open src
FileStream fsSrc = File.OpenRead( src );
BinaryReader rdr = new BinaryReader( fsSrc );
// create dest
FileStream fsDest = File.Open( dest, FileMode.Create );
// create memory stream
MemoryStream memStream = new MemoryStream();
int curChar = 0;
// read source into memory stream
while( (curChar = rdr.Read()) != -1 )
{
memStream.WriteByte( Convert.ToByte(curChar) );
}
for( int i = 0; i < memStream.Length/2; ++i )
{
byte tempTop, tempBottom;
// get top byte
memStream.Seek( i, SeekOrigin.Begin );
tempTop = (byte) memStream.ReadByte();
// get bottom byte
memStream.Seek( -i-1, SeekOrigin.End );
tempBottom = (byte) memStream.ReadByte();
// set new bottom byte
memStream.Seek( -1, SeekOrigin.Current );
memStream.WriteByte( tempTop );
// set new top byte
memStream.Seek( i, SeekOrigin.Begin );
memStream.WriteByte( tempBottom );
}
// write memory stream to disk
memStream.Seek( 0, SeekOrigin.Begin );
byte[] memBytes = memStream.ToArray();
BinaryWriter bw = new BinaryWriter( fsDest );
bw.Write( memBytes );
// clean up (note: closing BinaryReader and
// BinaryWriter closes streams also)
bw.Close();
rdr.Close();
}
static void DisplayUsage()
{
Console.WriteLine( “Usage: reverse <source filename> “ +
“<destination filename>\n” );
}
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -