suo4.cs
上传用户:yiyuerguo
上传日期:2014-09-27
资源大小:3781k
文件大小:2k
源码类别:

C#编程

开发平台:

Others

  1. // suo3.cs
  2. // 示例文件:cscs.txt
  3. using System;
  4. using System.IO;
  5. // 建立类文件
  6. // 就好像是一个数组一样
  7. public class FileByteArray
  8. {
  9. //建立一个流
  10. Stream stream;      
  11. //用FileStream类实现对字符流的输入
  12. public FileByteArray(string fileName)
  13. {
  14. stream = new FileStream(fileName, FileMode.Open);
  15. }
  16.     //当使用流文件结束后要关闭流
  17. public void Close()
  18. {
  19. stream.Close();
  20. stream = null;
  21. }
  22. // Indexer to provide read/write access to the file.
  23. public byte this[long index]   // long is a 64-bit integer
  24. {
  25. // 读取一个字节 然后返回它
  26. get 
  27. {
  28. byte[] buffer = new byte[1];
  29. stream.Seek(index, SeekOrigin.Begin);
  30. stream.Read(buffer, 0, 1);
  31. return buffer[0];
  32. }
  33. // 写入一个字节
  34. set 
  35. {
  36. byte[] buffer = new byte[1] {value};
  37. stream.Seek(index, SeekOrigin.Begin);
  38. stream.Write(buffer, 0, 1);
  39. }
  40. }
  41. // 得到流的总长度
  42. public long Length 
  43. {
  44. get 
  45. {
  46. return stream.Seek(0, SeekOrigin.End);
  47. }
  48. }
  49. }
  50. // Demonstrate the FileByteArray class.
  51. // Reverses the bytes in a file.
  52. public class Reverse 
  53. {
  54. public static void Main(String[] args) 
  55. {
  56. // 检测这个文本文件是否存在
  57. if (args.Length == 0)
  58. {
  59. Console.WriteLine("indexer <filename>");
  60. return;
  61. }
  62. //将文本文件转到字节数组内
  63. FileByteArray file = new FileByteArray(args[0]);
  64. long len = file.Length;
  65. // 交换有为的字节达到翻转的效果
  66. for (long i = 0; i < len / 2; ++i) 
  67. {
  68. byte t;
  69. //file索引器交换数的位置
  70. t = file[i];
  71. file[i] = file[len - i - 1];
  72. file[len - i - 1] = t;
  73. }
  74. file.Close();
  75. }