I/O系统
来源:互联网 发布:简单图表制作软件 编辑:程序博客网 时间:2024/06/07 01:41
I/O系统
1.基本概念
数据流:是一种产生或使用信息的抽象,一下分字节数据流和字符数据流;
字节数据流与字符数据流:字节数据流可以处理ASCII字符集,但不适合处理Unicode编码的字符,字符数据流可以处理后者;
2.字节数据流类(Stream类)
System.IO.Stream,Stream类代表字节数据流,是抽象类,是所有其它数据流类的基类,包括一些常用的方法和属性;
http://msdn.microsoft.com/en-us/library/system.io.stream.aspx
从Stream类派生出一些具体的字节数据流类,如BufferedStream、FileStream、MemoryStream、UnmanagedMenoryStream;(暂不需了解)
3.字符数据流类
TextReader和TextWrite类代表字符数据流,是抽象类,是所有其它字符数据流的基类,包括一些常用的方法和属性;
http://msdn.microsoft.com/en-us/library/system.io.textreader.aspx
http://msdn.microsoft.com/en-us/library/system.io.textwriter.aspx
实现TextReader和TextWrite类的一些数据流类包括:StreamReader、StreamWriter、StringReader、StringWriter;(暂不需了解)
4.控制台I/O
第一次看书时,一直没理清控制台I/O和字符数据流类的关系,故重新梳理一遍。
首先介绍标准数据流(字符数据流),即Console.In、Console.Out、Console.Error;(只需要知道有这标准数据流说法就行)
其次要理清Console.In数据流、Console类、TextReader类之间的关系。
Console.In是Console类的属性,此属性可返回TextReader类的对象,故可理解书本上说“Console.In数据流是TextReader类的一个实例”,Console.In.Read()其实就是调用TextReader的Read()方法,TextReader.Read()。
接着需要理解Console.Read()方法,上图是Console.Read()方法的代码,返回的是In.Read(),那Console.Read()就是先调用Console.In属性实例化TextReader,然后调用其Read()方法,等同于Console.In.Read()。
对于Console.Read(),需要注意的是它是逐行缓冲输入,即必须按enter键之后才会被输入,但于此同时除了输入的值以外还会顺带输入(Windows下是回车符和换行符)\n和\r.分析以下代码:
int a =Console.Read();
int b =Console.Read();
int c =Console.Read();
int d =Console.Read();
int e =Console.Read();
int f =Console.Read();
Console.Write (a);
Console.Write (b);
Console.Write (c);
Console.Write (d);
Console.Write (e);
Console.Write (f);
输入值为:1
2
输出为:49(1的ascii)13(回车符ascii)10(换行符ascii) 50 1310
其它ReadLine()等方法原理同上。
- Java I/O系统
- java I/O系统
- 系统级I/O
- Java I/O系统
- I/O系统
- I/O系统
- I/O系统
- Java I/O系统
- Java I/O系统
- C# I/O系统
- ava I/O系统
- I/O系统
- java I/O系统
- 系统级I/O
- 系统级I/O
- Java I/O系统
- Java I/O系统
- 系统I/O架构
- 查看本机.NET Framework版本
- 双字节除以单字节 除法 MCU:SONIX
- 为Ruby On Rails开发者准备的5款IDE
- Fedora问题总结
- 黑马程序员————方法简介
- I/O系统
- 执行不完整恢复
- android的viewbadger"徽章"任何给定的Android视图,而无需在运行时布局,以迎合在一个简单的方法
- Spring Security的配置及使用
- 在VS2008中用C#的安装包的问题,懂的进---------
- String,创建对象问题
- 视频监控RTSP 客户端
- 关于hibernate的缓存使用
- 开源项目备注