第九章 输入输出流
- 格式:ppt
- 大小:312.51 KB
- 文档页数:43
输入输出流是一个常把人搞晕的概念,问题出在哪儿?问题出在我们犯了习惯性思维的毛病,落入了“输入”、“输出”两词制造的陷井。
一讲到输入流,我们常常会不言而喻地把它理解为这个对象是用来读其他对象的,如把字节数组、字符串等读进来;同样,一说到输出流,常常会把它理解为,这个对象就是用来输出的,如把字节数组、字符串的内容输出来或写出来,等等。
要是这样理解,整好把它们理解错了个180度。
实际上我们首先应当把输入流和输出流分别这样理解:输入流的核心机能是把属于“自已缓冲区的”内容一个符一个符地读出来(可称为吐出来),展现给你;输出流的核心机能是把其它对象的内容一个符一个符地“写到属于自已的内存缓冲区”里去(可称为吃进去)。
下面我们来具体看一看:(一)ByteArrayInputStream(字节数组输入流)从字面上看ByteArrayInputStream是输入流,其实,我们对它的应用主要是把存放在它内部的东东(或者说把与它有联系的字节数组)一个一个字节地或成组地读(read)出来。
当我们想对一个字节数组一个字节一个字节进行过滤的时候,可以用它来实现。
使用这个类通常用以下几个步骤与方法(1)创建实例(也有的叫创建对象)。
如:byte buffer[]={'T','e','s','t'};//可以用其他方法制作数组。
ByteArrayInputStream inStream=new ByteArrayInputStream(buffer);(当然还有另外的构造方法)inStream即为实例。
这一步的作用,我们可以把它理解为inStream把buffer数组一次性地复制到自已内部的缓冲区,以后,inStream内部的各方法如read、skip、available、reset的操作对象就是这个内部缓冲区。
也就是说,我们可以认为,imStream内部有一个private(私有的)缓冲区,这个缓冲区被封装在inStream内,只有inStream的方法可以对它操作,外界是不可以直接读写这个缓冲区的。
C语言的输入输出流C语言作为一种面向过程的编程语言,其输入输出流(Input/Output Stream)是非常重要的概念。
输入输出流允许我们在程序中与用户交互,从用户处接收输入并向用户展示输出。
本文将探讨C语言中的输入输出流相关的概念和函数,以及如何在程序中使用它们。
一、标准输入流(stdin)、标准输出流(stdout)和标准错误流(stderr)C语言中,有三个预定义的输入输出流,分别是标准输入流(stdin)、标准输出流(stdout)和标准错误流(stderr)。
它们分别被定义为文件指针,可以通过它们来进行输入和输出操作。
1. 标准输入流(stdin)标准输入流(stdin)用于从用户处接收输入。
在C语言中,我们可以使用`scanf()`函数来从标准输入流读取输入数据。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("您输入的整数是:%d\n", num);return 0;}```在这个例子中,`scanf()`函数用于从标准输入流(stdin)中读取一个整数,并将其存储到变量`num`中。
然后,我们使用`printf()`函数将输入的整数输出到标准输出流(stdout)上。
2. 标准输出流(stdout)标准输出流(stdout)用于向用户展示输出。
在C语言中,我们可以使用`printf()`函数向标准输出流打印输出。
```c#include <stdio.h>int main() {printf("Hello, world!\n");return 0;}```在这个例子中,`printf()`函数用于向标准输出流(stdout)打印字符串"Hello, world!",并在字符串的末尾添加一个换行符。