第9章、输入输出流

合集下载

第9章iostream库

第9章iostream库

istringstream类的构造函数为:
istringstream(const char *str); istringstream( );
例如: istringstream st(“12 5.6 hello”);
int a; double b;
st>>a>>b;
cout<<a<<endl<<b;
//12
if(cin!=0)
//cin为false表示读操作失败或遇到文件尾
ios基类定义的状态字有:
ios::badbit 操作无效
ios::goodbit 正常状态 ios::failbit 上次I/O操作失败
ios::eofbit 到达文件尾
可以通过以下成员函数访问当前状态值: int eof( ); 到达文件尾,返回true,否则false
10.2 容器
in>>obj.b; return in;}
int main( )
{data d1(3,8.9); cout<<d1;
return 0;}
第一个参数是ostream 或istream对象的引用,所以只能定义为友元函数。
9.3 文件输入和输出
9.3.1 ofstream流类
ofstream流类对象完成文件的输出,ofstream流类对象的构造函数有: 1、ofstream(char * s,int mode=ios::base_out,int attr=filebuf::openprot); s指向要打开的文件名字符串; mode为打开模式,缺省实参值为输出模式(ios::base_out),还可以为附加模式 (ios::base_app)。若打开的文件不存在,则创建新文件。如果在输出模式下打 开已存在的文件,文件中的数据将被覆盖,若希望保留文件原来的数据,应以 附加模式打开,新数据将添加至文件尾部; 文件打开模式还有: ios::ate 打开文件以便输出,位置指针移到文件末尾(通常用于添加数据); ios::in 打开文件以便输入; ios::trunc 删除文件原来的数据(是ios::out的默认操作) ios::nocreate 如果文件不存在,则文件打开失败 ios::noreplace 如果文件存在,则文件打开失败 ios::binary 以二进制方式打开文件

单片机原理及接口技术课后习题第9章 答案

单片机原理及接口技术课后习题第9章 答案

第九章复习思考题1. 计算机系统中为什么要设置输入输出接口输入/输出接口电路是CPU与外设进行数据传输的桥梁。

外设输入给CPU的数据,首先由外设传递到输入接口电路,再由CPU从接口获取;而CPU输出到外设的数据,先由CPU 输出到接口电路,然后与接口相接的外设获得数据。

CPU与外设之间的信息交换,实际上是与I/O接口电路之间的信息交换。

2. 简述输入输出接口的作用。

I/O接口电路的作用主要体现在以下几个方面:(1)实现单片机与外设之间的速度匹配;(2)实现输出数据锁存;(3)实现输入数据三态缓冲;(4)实现数据格式转换。

3. 在计算机系统中,CPU与输入输出接口之间传输数据的控制方式有哪几种各有什么特点在计算机系统中,CPU与I/O接口之间传输数据有3种控制方式:无条件方式,条件方式,中断方式,直接存储器存取方式。

在无条件方式下,只要CPU执行输入/输出指令,I/O接口就已经为数据交换做好了准备,也就是在输入数据时,外设传输的数据已经传送至输入接口,数据已经在输入接口端准备好;输出数据时,外设已经把上一次输出的数据取走,输出接口已经准备好接收新的数据。

条件控制方式也称为查询方式。

CPU进行数据传输时,先读接口的状态信息,根据状态信息判断接口是否准备好,如果没有准备就绪,CPU将继续查询接口状态,直到其准备好后才进行数据传输。

在中断控制方式下,当接口准备好数据传输时向CPU提出中断请求,如果满足中断响应条件,CPU则响应,这时CPU才暂时停止执行正在执行的程序,转去执行中断处理程序进行数据传输。

传输完数据后,返回原来的程序继续执行。

直接存储器存取方式即DMA方式,它由硬件完成数据交换,不需要CPU的介入,由DMA 控制器控制,使数据在存储器与外设之间直接传送。

4. 采用74LS273和74LS244为8051单片机扩展8路输入和8路输出接口,设外设8个按钮开关和8个LED,每个按钮控制1个LED,设计接口电路并编制检测控制程序。

[java入门学习]第 9 章 Java输入输出操作

[java入门学习]第 9 章 Java输入输出操作

第九章 Java输入输出操作9.1 Java 输入输出流所有的程序语言都提及与本机文件系统交互的方式;Java也不例外。

我们将看看Java 是怎样处理标准文件输入输出的(包括stdin,stout,stderr)。

当你在网络上开发小程序时,你必须注意直接文件输入输出是不安全因素的关键。

大多数用户设置他们的浏览器,可让你自由的访问他们的文件系统,但有的不让你访问。

当然,如果你开发你内部的应用程序,你也许需要直接访问文件。

标准输入输出Unix的用户,或其他基于命令行系统的用户(如DOS),都知道标准输入输出的含义。

标准输入文件是键盘,标准输出文件是你的终端屏幕。

标准错误输出文件也指向屏幕,如果有必要,它也可以指向另一个文件以便和正常输出区分。

系统类Java通过系统类达到访问标准输入输出的功能。

上面提到的三个文件在这个系统类中实现:Stdin System.in作为InputStream类的一个实例来实现stdin,你可以使用read()和skip(long n)两个成员函数。

read()让你从输入中读一个字节,skip(long n)让你在输入中跳过n个字节。

Stout System.out作为PrintStream来实现stdout,你可以使用print()和println()两个成员函数。

这两个函数支持Java的任意基本类型作为参数。

Stderr System.err同stdout一样实现stderr。

象System.out一样,你可以访问PrintStream 成员函数。

9.2 标准输入输出例子import java.io.* class myCat{public void main(String args[]) throws IOException{int b;int count = 0;while ((b = System.in.read()) != -1){count++;System.out.print((char)b);}System.out.println(); //blank line System.err.println("counted"+count+"total bytes.");}}9.3 普通输入输出类除了基本的键盘输入和屏幕输出外,我们还需要联系文件的输入输出。

第9章 JSP中的文件操作-JSP实用教程(第4版)-耿祥义-清华大学出版社

第9章 JSP中的文件操作-JSP实用教程(第4版)-耿祥义-清华大学出版社
例子9_1 example9_1.jsp
9.2 RandomAccessFile类
需要对一个文件进行读写操作时,可以创建一个RandomAccessFile对象, RandomAccessFile对象可以读取文件的数据,也可以向文件写入数据。
RandomAccessFile类的两个构造方法:
• RandomAccessFile(String name,String mode) 参数name用来确定一个文件名, 参数mode取“r”(只读)或“rw”(可读写),决定对文件的访问权利。
example9_2.jsp
2.servlet Example9_2_Servlet.java
3.配置文件web.xml web.xml
9.3 文件上传
用户通过一个JSP页面上传文件给服务器时,form表单必须将ENCTYPE的属性值设成 multipart/form-data,并含有File类型的GUI组件。含有File类型GUI组件的form表单如 下所示:
例子9_3中,用户通过example9_3.jsp页面上传文本文件A.txt。
9.3 文件上传
例子9_3中,用户通过example9_3.jsp页面上传文本文件A.txt。 例子9_3 example9_3.jsp
example9_3_accept.jsp
例子9_4
例子9_4中,通过输入、输出流技术获取文件的内容,即去掉表单的信息。 根据不同用户的session对象互不相同这一特点,将用户提交的全部信息首 先保存成一个临时文件,该临时文件的名字是用户的session对象的id,然 后读取该临时文件的第2行,因为这一行中含有用户上传的文件的名字, 再获取第4行结束的位置,以及倒数第6行结束的位置,因为这两个位置之 间的内容是上传文件的内容,然后将这部分内容存入文件,该文件的名字 和用户上传的文件的名字保持一致,最后删除临时文件。 例子9_4的Web应用程序使用MVC模式(MVC的知识见第7章)。

标准输入输出流

标准输入输出流

标准输入输出流标准输入输出流(Standard Input/Output Stream)是计算机程序中常用的一种输入输出方式,它是程序与外部环境进行数据交换的重要方式。

在大多数编程语言中,都有对标准输入输出流的支持,比如在C语言中,可以使用stdio.h库中的函数来进行标准输入输出操作。

在本文中,我将介绍标准输入输出流的基本概念、使用方法和一些常见的应用场景。

标准输入流(stdin)是程序从键盘或其他输入设备读取数据的流,而标准输出流(stdout)则是程序向屏幕或其他输出设备输出数据的流。

这两个流在程序运行时都是默认打开的,可以直接使用,不需要额外的操作。

除了标准输入输出流之外,还有标准错误流(stderr),用于输出程序的错误信息。

在C语言中,可以使用printf函数向标准输出流输出数据,使用scanf函数从标准输入流读取数据。

比如:```c。

int num;printf("Please input a number: ");scanf("%d", &num);printf("The number you input is: %d\n", num);```。

上面的代码中,printf函数将提示用户输入一个数字,然后使用scanf函数从标准输入流读取用户输入的数字,并使用printf函数将其输出到标准输出流。

除了C语言之外,其他编程语言也都提供了类似的标准输入输出流操作方式。

比如在Python中,可以使用input函数获取用户输入,使用print函数输出数据。

在Java中,可以使用System.in和System.out来进行标准输入输出操作。

标准输入输出流在实际应用中有着广泛的用途。

比如在命令行程序中,通常会使用标准输入输出流来与用户进行交互;在网络编程中,可以使用标准输入输出流来进行数据的读写;在文件处理中,可以使用标准输入输出流来进行文件的读写操作。

java

java

System.out.println("文件名: "+myFile.getName()); System.out.println("文件的相对路 径:"+myFile.getPath()); System.out.println("文件绝对路 径:"+myFile.getAbsolutePath()); System.out.println("上一级目录 名:"+myFile.getParent());
(2)public File(String pathname, String name); 参数pathname指明新创建的文件对象 所对应的文件所在的路径,可以是绝对路 径或相对路径。参数name指明新创建的文 件对象所对应文件的名称。将路径和名称 分开可使具有相同路径的文件具有同一个 路径字符串,而且方便管理。 例如: File myFile=new File("c:\java", "test.txt");
System.out.println("文件长 度:"+myFile.length()); System.out.println("是文件 吗?"+myFile.isFile()); System.out.println("是目录 吗?"+myFile.isDirectory()); System.out.println("是否可 写?"+myFile.canWrite());
第9章 Java输入输出
9.1 Java输入输出概述
9.2 文 件 处 理 9.3 目 录 管 理

《程序设计基础(CC++)》课程教学大纲

《程序设计基础(CC++)》课程教学大纲

《程序设计基础(C/C++)》课程教学大纲一、课程信息英文名称:Foundation of Programming (C/C++)授课方式:机房授课课程类别:学科基础课程性质:必修学分:3学时:54学时适用对象:计算机类专业等先修课程:计算机导论开课院系:软件工程系、计算机科学与技术系等二、课程简介《程序设计基础(C/C++)》是软件工程、计算机科学与技术等计算机类本科专业的学科基础课程。

本课程主要的教学内容是C++语言的基本数据类型与表达式,程序基本控制结构,函数、数组及指针的运用,以及输入/输出流类的应用等。

课程以程序设计方法贯穿始终,从语法规则到编程实践,力求在掌握基本程序设计方法的同时,培养学生良好的程序设计习惯,养成良好的专业素养。

本课程的教学方式采用机房上课演示讲授并辅以学生上机练习,充分利用课堂网络教学环境,与PPT、板书、课后思考题和练习题等相结合,并结合课程设计教学环节,使学生能够掌握C/C++程序设计的基本方法,学会对现实世界中的问题及其解决方法用C++语言进行描述。

三、课程任务、目标与要求1.课程任务《程序设计基础(C/C++)》是学习计算机编程的入门课程,学生不仅要学习C/C++语言的基本知识和程序设计方法,还要上机编程实践,掌握计算机调试程序的基本技能,为后续课程的学习打下良好的编程基础。

2.课程基本要求2.1课程目标《程序设计基础(C/C++)》课程着重对学生编程实践能力的培养。

要求学生重视上机编程实践,广学多练,不断地培养和提高编程兴趣;充分利用现代信息技术及互联网资源,运用发散性思维方式,对相关知识进行扩展,开阔视野,在循序渐进中提高编程能力。

2.2 课程目标与毕业要求之间的对应关系本课程要求学生掌握软件工程和计算机学科有关程序设计的基本理论和基本知识;掌握对现实世界中问题及其解决方法用C++语言进行描述的分析方法和技术;具有运用C/C++语言进行程序设计的基本能力;了解程序设计方法和C/C++语言的理论发展动态和行业需求。

第9章 C++流

第9章 C++流

【复习与提示】
1. C++为实现数据的输入和输出定义了一个庞大的类库,它包括的类主要有ios,istream, ostream,iostream,ifstream,ofstream,fstream,使用到相应的流时,应加载相应的包含文 件: #include<iostream>; using namesapce std; 2. 将运算符“<<”称为插入运算符,“>>”称为抽取符。 3. 计算机处理的所有数据项最终都是0和1的组合,字符是由位构成的,域(field)是由字符构成 的。一个域就是一组有意义的字符。记录是由多个域构成(在C++中称为成员)。 4. C++语言把每一个文件都看成一个有序的字节流,每一个文件或者以文件结束符(end-of-file marker)结束,或者在特定的字节号处结束。 5. 文件可以用open( )函数打开,用close( )函数关闭,可以用同一个对象来处理单个程序中不 同的文件。 6. 每个流有一系列位或标记与它的操作相关。这些位在ios类中定义。与打开文件有关的位称 为打开方式位(open mode bits)。 7. C++提供了随机读写文件的函数seekg( )、tellg( )、seekp( )、tellp( ): (1)get指针:它指出将出现下一个读操作的文件的位置。 (2)put指针:它指出将出现下一个写操作的文件的位置。
流的层次结构
ios
istream
ostream
iostream
ifstream
fstream
ofstream
C++为用户进行标准I/O操作定义 了四个类对象
标识符名字 cin cout cerr clog 调用设备 键盘 屏幕 屏幕 打印机 默认的含义 标准输入 标准输出 标准错误 打印机
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

read方法还有其它一些形式。这些形式能使程序把 多个字节读到一个字节数组中: int read(byte b[]); int read(byte b[],int off,int len); 其中,off参数指定read方法把数据存放在字节数组b中的 位置,len参数指定该方法将读取的最大字节数。上面这 两个read方法都返回实际读取的字节个数,如果它们到 达输入流的末尾,则返回-1。 FileInputStream流顺序地读取文件,只要不关闭流, 每次调用read()方法就顺序地读取文件中其余的内容,直 到文件的末尾或流被关闭。
9.3 文件字符流
1.FileReader类 FileReader类是Reader的子类,称为文件字符输入流。 为了创建FileReader类的对象,可以使用下列构造方 法: FileReader(String name)使用给定的文件名name创建 一个FileReader对象。 FileReader(File file) 使用File对象创建FileReader对象。 构造方法参数指定的文件称作输入流的源,输入流通过 使用read()方法从输入流读出源中的数据。
3.文件的创建与删除 当使用File类创建一个文件对象后,如 File f=newFile(“C:\\myletter","letter.txt"); 如果C:\myletter目录中没有名字为letter.txt文件,文 件对象f调用方法 public boolean createNewFile() 可以在C:\myletter目录中建立一个名字为letter.txt的 文件。 文件对象调用方法 public boolean delete() 可以删除当前文件,如 f.delete();
2.FileWriter类 FileWriter提供了基本的文件写入能力。FileWriter类 是Writer的子类,称为文件字符输出流。文件字符输出 流按字符将数据写入到文件中。为了创建FileWriter类的 对象,可以使用下列构造方法: FileWriter(String name)使用给定的文件名name创建 一个FileWriter对象。 FileWriter(File file)使用File对象创建FileWriter对象。 构造方法参数指定的文件称作输出流的目的地,输出流 通过使用write()方法把字符数据写入输出流到达目的地。
2.目录 1)创建目录 File对象调用方法public boolean mkdir()创建 一个目录,如果创建成功返回true,否则返回 false(如果该目录已经存在)。
2)列出目录中的文件 如果File对象是一个目录,那么该对象可以 调用下述方法列出该目录下的文件和子目录: public String[] list()用字符串形式返回目录下的 全部文件。 public File[] listFiles()用File对象形式返回目录 下的全部文件。
ห้องสมุดไป่ตู้
9.2 文件字节流
1.FileInputStream类 FileInputStream类是InputStream的子类,称为文件 字节输入流。文件字节输入流按字节读取文件中的数据。 该类的所有方法都是从InputStream类继承来的。为了创 建FileInputStream类的对象,可以使用下列构造方法: FileInputStream(String name)使用给定的文件名name 创建一个FileInputStream对象。 FileInputStream(File file) 使用File对象创建 FileInputStream对象。 构造方法参数指定的文件称作输入流的源,输入流通过 使用read()方法从输入流读出源中的数据。
1.文件的属性 使用File类的下列方法获取文件本身的一些信息: public String getName()获取文件的名字 public boolean canRead()判断文件是否是可读的。 public boolean canWrite()判断文件是否可被写入。 public boolean exits()判断文件是否存在。 public long length()获取文件的长度(单位是字节)。 public String getAbsolutePath()获取文件的绝对路径。 public String getParent()获取文件的父目录。
FileOutputStream对象可以使用write()方法把 字节发送给输出流。write的用法如下: public void write(byte b[])写b.length个字节到输 出流。 public void write(byte b[],int off,int len)从给定 字节数组中起始于偏移量off处写len个字节到输 出流,参数b是存放了数据的字节数组。
int read()输入流调用该方法从源中读取一个字符,该 方法返回一个整数(Unicode字符值),如果未读出字符就 返回-1。 int read(char b[])输入流调用该方法从源中读取b.length 个字符到字符数组b中,返回实际读取的字符数目。如 果到达文件的末尾,则返回-1。 int read(char b[],int off,int len)输入流调用该方法从源中 读取len个字符并存放到字符数组b中,返回实际读取的 字符数目。如果到达文件的末尾,则返回-1。其中,off 参数指定read方法从符数组b中的什么地方存放数据。
例9-1列出C:/1000目录下扩展名是.java文件的名 字以及它们的大小,并删除C:/1000中的一 个.java文件。
4.运行可执行文件 当要执行一个本地机上的可执行文件时,可以使用 ng包中的Runtime类。首先使用Runtime类声明一 个对象,如 Runtime ec; 然后使用该类的静态getRuntime()方法创建这个对象 ec=Runtime.getRuntime(); ec可以调用exec(String command)方法打开本地机的 可执行文件或执行一个操作。 例9-2中,Runtime对象打开windows平台上的绘图程 序和记事本程序。
例9-4中,首先用字符输出流向一个文件写入若 干个字符,然后再用字符输入流读出文件中的 内容。
当程序需要读取磁盘上的数据或将程序中得到数据 存储到磁盘时,就可以使用输入输出流,简称I/O流。 I/O流提供一条通道程序,可以使用这条通道读取“源” 中的数据,或把数据送到“目的地”。I/O流中的输入流 的指向称做源,程序从指向源的输入流中读取源中的数 据;输出流的指向称做目的地,程序通过向输出流中写 入数据把信息传递到目的地。虽然I/O流经常与磁盘文件 存取有关,但是程序的源和目的地也可以是键盘、鼠标、 内存或显示器窗口。
File类的下述两个方法可以列出指定类型的 文件: public String[] list(FilenameFilter obj)用字符串 形式返回目录下的指定类型的所有文件。 public File[] listFiles(FilenameFilter obj)用File对 象返回目录下的指定类型所有文件。 FilenameFile是一个接口,该接口有一个方 法: public boolean accept(File dir,String name);
Java语言
A more pure OOP language
第九章 输入、输出流
1.文件 2.文件字节流 3.文件字符流 4.从键盘读取数据 5.缓冲流 6.数组流

7.字符串流 8.数据流 9.管道流 10.对象流 11.序列化与对象克隆 12.随机读写流 13.文件锁
public boolean isFile()判断文件是否是一个正常 文件,而不是目录。 public boolean isDirectroy()判断文件是否是一 个目录。 public boolean isHidden()判断文件是否是隐藏 文件。 public long lastModified()获取文件最后修改的 时间(时间是从1970年午夜至文件最后修改时刻 的毫秒数
9.1 文件
Java使用File类创建的对象来获取文件本身的 一些信息,例如文件所在的目录、文件的长度、 文件读写权限等,文件对象并不涉及对文件的 读写操作。创建一个File对象的构造方法有3个: File(String filename); File(String directoryPath,String filename); File(File f,String filename); 使用File(String filename)创建文件时,该文 件被认为是与当前应用程序在同一目录中。
2.FileOutputStream类 FileOutputStream提供了基本的文件写入能力,是 OutputStream的子类,称为文件字节输出流。文件字节 输出流按字节将数据写入到文件中。为了创建 FileOutputStream类的对象,可以使用下列构造方法: FileOutputStream(String name)使用给定的文件名name创 建一个FileOutputStream对象。 FileOutputStream(File file) 使用File对象创建 FileOutputStream对象。 构造方法参数指定的文件称作输出流的目的地,输 出流通过使用write()方法把数据写入输出流到达目的地。
Java的I/O流库提供大量的流类(在包java.io 中)。其中有4个重要的abstract类: InputStream(字节输入流) Reader(字符输入流) OutputStream(字节输出流) Writer(字符输出流) 其中InputStream和Reader类为其子类提供了重要 的读取数据的read()方法,OutputStream和Writer 类为其子类提供了重要的写入数据的write()方法。
使用文件输入流构造器建立通往文件的输 入流时,可能会出现错误(也被称为异常)。例如, 试图要打开的文件不存在,就出现I/O错误, Java生成一个出错信号,它使用一个IOException 对象来表示这个出错信号。程序必须使用一个 try-catch块检测并处理这个异常。
相关文档
最新文档