C#Stream、BaseStream、StreamReader、BinaryReader、Convert.ToInt32、int32.Parse()
来源:互联网 发布:淘宝手机端主图修改 编辑:程序博客网 时间:2024/06/03 07:04
1:BinaryReader:读取二进制文件
Stream 就像是一个通道,在.net运行时和文件之间建立一个桥梁, 然后通过StreamReader读取数据。
BaseStream就是操作streamreader的,返回的结果就是streamreader
StreamReader是以一种特定的编码输入字符带缓冲的流字符读取器,而基础流就是它读取的未指定编码的无缓冲的字节流...
因此StreamReader可能缓冲输入使基础流的位置与StreamReader的位置不匹配,字符流的长度和基础流的字节长度也不见得相同...
FileStream myFile = new FileStream(_fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);BinaryReader br = new BinaryReader(myFile);br.BaseStream.Seek(0, SeekOrigin.Begin);1、新建一个文件流。2、转换为二进制流。3、设置当前流的位置,即开始位置。像是一个标识一样,即指向开始读取的位置。PS:Seek(0, SeekOrigin.Begin)的意思是在流的开始位置(SeekOrigin.Begin)偏移零位。如果为Seek(6, SeekOrigin.Begin)即为在流的开始位置(SeekOrigin.Begin)偏移6位
当要写入的文件名的路径没有给时,只给出了文件名,默认写入到文件的bin\debug中,学习了FileStream的使用,BinaryReader,BaseStream的使用。 class Program { static void Main(string[] args) { string filePath = @"D:\vivien.tang\桌面\614问题总结.docx"; string save = "save.txt";//这里的文件路径没有给出,只给出了文件名,在程序的debug中创建了文件名 FileStream fileReader = new FileStream(filePath,FileMode.Open,FileAccess.Read); using(FileStream fileSave=new FileStream(save,FileMode.Create,FileAccess.Write,FileShare.ReadWrite)) { BinaryReader binReader = new BinaryReader(fileReader,Encoding.Default); BinaryWriter binWrite = new BinaryWriter(fileSave,Encoding.Default); binReader.BaseStream.Position = 0; while(binReader.BaseStream.Position<binReader.BaseStream.Length) { byte[] byBuffer = binReader.ReadBytes(1); binWrite.Write((byte)byBuffer[0]); } binWrite.Flush(); } string str = "TryToSave.txt"; using(FileStream file=new FileStream(str,FileMode.Create,FileAccess.Write)) { file.Write(Encoding.Default.GetBytes("123"), 0, "123".Length); } fileReader.Close(); fileReader.Dispose(); Console.ReadKey(); }
readBytes(int length):从当前流中读取指定的字节数以写入字节数组中,并将当前位置前移相应的字节数. FileStream fs =new FileStream(file_path,FileMode.Open,FileAccess.Read);//创建一个文件流 BinaryReader reader = new BinaryReader(fs);//以二进制的形式读取文件,转换为二进制流 BinaryWriter bw_ble_header = new BinaryWriter(writefs_ble_header, Encoding.Default); reader.Close(); fs.Close(); fs.Dispose();
int32.Parse() :表示将数字的字符串转换为32位的有符号的整数;用法:public static int Parse(string )若string 为空,出现异常:ArgumentNullException若string格式不正确,出现异常:FormatException若string的值小于MinValue或者大于MaxValue,出现异常:OverflowException(int)234.3;是一种强制类型转换 Convert.ToInt32() 则可以将多种类型(包括 object 引用类型)的值转换为 int 类型,因为它有许多重载版本: public static int ToInt32(object); public static int ToInt32(bool); public static int ToInt32(byte); public static int ToInt32(char); public static int ToInt32(decimal); public static int ToInt32(double); public static int ToInt32(short); public static int ToInt32(long); public static int ToInt32(sbyte); public static int ToInt32(string);
阅读全文
0 0
- C#Stream、BaseStream、StreamReader、BinaryReader、Convert.ToInt32、int32.Parse()
- Int32.Parse()和Convert.ToInt32()
- Convert.ToInt32与Int32.Parse
- C#:Convert.ToInt32(String)和Int32.Parse(String)的区别
- [C#]Int32.TryParse()、int.Parse和Convert.ToInt32的区别
- int32.Parse 与Convert.toInt32 区别?
- Convert.ToInt32与Int32.Parse的恩恩怨怨
- Convert.ToInt32与Int32.Parse的区别
- (C#)Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者的区别
- Convert.ToInt32与Int32.Parse区别及Int32.TryParse
- Int32.TryParse()与Convert.ToInt32()、Int32.Parse()的区别
- Convert.ToInt32() 与 Int32.Parse() 区别及 Int32.TryParse()
- Convert.ToInt32与Int32.Parse区别及Int32.TryParse【转载】
- Convert.ToInt32与Int32.Parse区别及Int32.TryParse
- Int32.Parse, Convert.ToInt32,Int32.TryParse三者的区别
- Int32.Parse, Convert.ToInt32,Int32.TryParse三者的区别
- (int),Convert.ToInt32(),Int32.Parse(),Int32.TryParsed()的用法总结
- Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int)
- Java浅克隆深克隆
- 如何快速转载别人的CSDN博客
- Android 正则表达式 的应用
- Java递归示例:实现文档树
- delete和delete[]
- C#Stream、BaseStream、StreamReader、BinaryReader、Convert.ToInt32、int32.Parse()
- IncompatibleClassChangeError
- numpy方法总结
- 回溯法
- Android热补丁动态修复技术(一):从Dex分包原理到热补丁
- Error:Execution failed for task ':protectParentClient2:processDebugManifest'. > Manifest merger fail
- DOM知识块的笔记总结
- Tokenization in C++11
- Spring定时任务的几种实现