8 第10章 输入和输出流处理28941-34页文档资料

合集下载

C++程序设计基础教程 第10章 输入输出流

C++程序设计基础教程 第10章 输入输出流
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.1 C++语言基本流类体系的构成
ios
istream iostrea m
ostream
istream_withassign
ostream_withassign
图10.1 I/O流类库的类层次
2019/2/22
第10章 输入/输出流
2019/2/22
第10章 输入/输出流
10.2 C++语言的基本流类体系
10.2.2标准输入/输出流
标准I/O流是C++语言预定义的对象,提供内存与 外部设备进行数据交互功能,对数据进行解释和传输, 提供必要数据缓冲。C++语言的I/O流类库中预先定 义了4个标准流对象:cin、cout、cerr和clog,它们不 是C++语言中的关键字。只要程序中包含了头文件 iostream,编译器调用相应的构造函数产生这4个标准 流对象,用户在程序中就可以直接使用了。
《C++程序设计基础教程》
第 10 章
输入/输出流
战略决定一切、执行决定一切、细 节决定一切!
第10章 输入/输出流
本章内容
输入/输出流的概念
1
C++语言的基本流类体系 2 文件的输入/输出
程序举例
2019/2/22
3
4
第10章 输入/输出流
数据的输入和输出(简写为I/O)包括对标准输入设备 键盘和标准输出设备显示器、对在外存磁盘上的文件和对 内存中指定的字符串存储空间进行输入/输出3个方面。 对标准输入设备和标准输出设备的输入/输出简称为标 准I/O,对在外存磁盘上文件的输入/输出简称为文件I/O, 对内存中指定的字符串存储空间的输入/输出简称为串I/O。

输入输出流和文件PPT教学课件

输入输出流和文件PPT教学课件

例:Int a=20;
System.out .print(a)
System.out .println(“大家好”) //加换行
➢ 用java.text包中的NumberFormat类可以控制显 示格式,有三种方法:
NumberFormat.getNumberInstance( ) //附加逗号
NumberFormat.getCurrencyInstance( ) //货币符号
8.2 输入输出流和文件处理
8.2. 1 流的概念
➢ 流是指在计算机的输入与输出之间运动的数据 的序列。输入流代表从外设流入计算机的数据
序列,输出流代表从计算机流向外设的数据序 列。
➢ 流的最大特点是:数据的获取和发送均按数据 序列顺序进行。
➢ Java中的流分为两种(被抽象为四个类): 字节流: InputStream类和OutputStream类 字符流: Reader类和 Writer类 字符流比字节流更有效。
double x=2345.123; String s1,s2,s3;
NumberFormat n1=NumberFormat.getNumberInstance( );
NumberFormat.getPercentInstance( ) //百分号
2020/12/09
8
例:import java.io.*; import java.text.*;
Public class TestOutput{ Public static void main(String args[ ]){
➢ 通过Java的控制台类Console类
Console类不是Java的标准类库,它属于corejava包。
使用Console类时需要加:

C语言程序设计课件第10章 输入输出流

C语言程序设计课件第10章 输入输出流

# include <iomanip.h>
void main(void)
{ char *name[]={"Zhou","Zhao","Liu","Chen","Li"};
double score[]={89,87.2,78.33,91.444,85.5555};
for (int i=0;i<5;i++) { cout.setf(ios::left);
如整数1025,以文本形式(31003236H)存储占用
四个字节,以二进制形式(0401H)存储则只占用
两个字节。
2021/7/13
23
2.文件的操作 文件操作分成4步: (1)定义文件流对象 ifstream 文件输入流对象; ofstream 文件输出流对象; fstream 文件输入/出流对象; (2)打开文件 文件流对象.open(磁盘文件名,输入输出模式)
14
2.其它格式控制
若要改变流的其它输出格式(如对齐方式), 可使用ios类中定义的成员函数setf来实现, 函数格式如下:
cout.setf(格式标志)
格式标志在类ios中被定义为枚举值,在引用这 些格式标志时要在前面加上类名ios和域运算 符“::”。
2021/7/13
15
【例10.3】 将学生姓名与比赛得分通过初始化 赋给数组name[5]、score[5],指定姓名域宽 为10个字符、左对齐,比赛得分为右对齐、 用定点方式、小数点后有2位有效数字。
2021/7/13
22
10.3 文件操作与文件流
10.3.1 文件的概念
1.文件

输入输出流.正式版PPT文档

输入输出流.正式版PPT文档
第章输入输出流
9.1 概述
C++用流(stream)的概念描述数据的输入 输出,流是计算机中的数据从源头移动到目 的地的这种过程的抽象。
流具有很强的方向性,与输入设备相联系的 流称为输入流,与输出设备相联系的流称为 输出流,与输入输出设备相联系的流称为输 入输出流。
流操作
对流的基本操作有两种,从流中获得数 据称为提取操作,向流中添加数据称 为插入操作。C++语言用流对象来管 理流,流对象一般都与某种设备相联 系,程序员通过操纵流对象,达到控 制输入输出的目的。
c1=cin.get(); cin.get(c2); cin.get(a,21,’#’);
成员函数getline
istream& getline(char *s,int n,char ch=’\n’);
char a[80]; cin.getline(a,21,’#’);
读取控制成员函数
函数原型
9.3 输入流
istream类提供了数据流输入的功能,在程序里可 以不断地从流对象中提取数据,存入相应的变量 中。
输入时使用的istream流对象通常是cin,有4种基 本操作方式。第1种是用流提取运算符,读入基本 类型的数据;第2种是用成员函数get,读入一个 字符或者字符串;第3种是用成员函数getline, 读入一个字符串;第4种是用成员函数read,读 入一串指定数量的字符。
பைடு நூலகம்
说明
int gcount(void) const
istream& ignore(int n=1,int d=EOF)
istream& putback(char ch)
int peek(void)

输入输出流

输入输出流

第十章 输入/输出流程序在运行时通常要和外部进行交互, 即从外部读取数据或向外部设备发送数据, 这就 是所谓的输入/输出(Input/Output)。

数据可以来自或者发往文件、 内存、 另一个程序或网络。

数据也可有不同的格式,例如可以是各种编码(ASCII 码或 Unicode 码等)的字符串、图像、 声音或对象等等。

Java 语言使用抽象概念——流来描述程序与数据发送或接收者之间的数据 通道。

使用输入/输出流,程序员可以方便灵活和安全地实现输入输出功能。

§10.1 输入/输出基本概念10.1.1 外部设备与文件我们可以从不同角度对外部设备进行分类。

按照外部设备的工作特性, 我们可将外部设 备分为两类:存储设备和输入/输出设备。

存储设备用于存储信息,包括硬盘、软盘、磁带、光盘等。

程序可将数据写入到这些设 备上,也可从这些设备读出数据,数据通常组织为文件形式。

这类设备上存储的数据在物理 上往往是按字符块组织的,因而又将它们称为块设备。

输入/输出设备又可分为输入设备和输出设备。

输入设备是计算机用于接受外界信息的 设备,诸如键盘、鼠标、扫描仪等均为输入设备;输出设备是将计算机处理完毕的数据送往 外界的设备,诸如显示器、打印机、绘图仪等均为输出设备。

由于这两类设备上的数据往往 是以字符为单位组织的,所以又称它们为字符设备。

计算机程序要与外界进行交互就必须使用相应的机制与输入/输出设备打交道。

程序的 输入是指从输入设备接收数据,程序的输出是指将数据传递给外部设备。

早期的高级程序设计语言对特定的外部设备提供特定的输入/输出操作, 这导致设计出 来的程序代码可移植性很差。

后来引入了文件(file)的概念,在程序中不仅可以声明文件 并将文件作为输入/输出的对象, 而且还可以在文件与某个外部设备之间建立关联, 将文件 作为输入设备与输出设备的抽象描述。

目前文件已成为高级程序设计语言输入/输出机制的 基本概念。

输入输出流

输入输出流

2. ios 提供用户接口
ios 输入流 istream
ostream 输出流
ifstream istream_withassign istrstream
输入文件流
输入串流
ofstream ostream_withassign
输出文件流
ostrstream
输出串流
iostream 输入/输出流
fstream
对象名 . open ( 文件名 , 方式 ) ;
例如:
▪ 打开一个已有文件datafile.dat,准备读: ifstream infile ; // 建立输入文件流对象 infile.open( "datafile.dat" , ios::in ) ; // 连接文件,指定打开方式
▪ 打开(创建)一个文件newfile.dat,准备写: ofstream outfile ; // 建立输出文件流对象 outfile.open( "d:\\newfile.dat" , ios::out ) ; // 连接文件,指定打开方式
如果文件中的每一个字节存放的是ASC码,则每个字节表示一 个字符。
以ASC码方式存放数据的文件称为文本文件。文本文件是一种 顺序文件。
在文本文件中,需要使用一个表示文件结束的标识常量EOF, 它在iostream中定义,值为26(0x1A)。关闭文件后,该字符被自动 添加到文件的尾部。
以二进制代码方式存放数据的文件称为二进制文件。 二进制文件是一种随机文件。
打开文件有两种方法:
或 fstream
ios::nocreate
0x0020
如果文件不存在,则打开操作失败
(1) i首os先::no建re立pla流ce对象,0然x0后04调0 用op如en果()文函件数存连在接,则外打部开文操件作失败

第10章 输入输出流

第10章  输入输出流
两类; ➢ 输入流只能读不能写,输出流只能写不能读; ➢ 程序通过输入流读入数据,输出流写数据; ➢ 在Java开发环境中,主要是由包java.io中提供的一系列
的类和接口来实现输入/输出处理;
10.1.2 java标准数据流
➢ 标准的输入是指在字符方式下(如dos),程序与系统交互的 方式,共分三种:
➢ 通过名字初步了解该类的含义。它派生的子类有:
➢ ByteArrayInputStream 字节数组输入流
➢ StringBufferInputStream 字符串输入流
➢ SequenceInputStream 顺序输入流
➢ FilterInputStream
过滤器输入流
➢ PipedInputStream
➢ 把输出送到缺省的显示(通常是显示器) ➢ System.in
➢ 从标准输入获取输入(通常是键盘) ➢ System.err
➢ 把错误信息送到缺省的显示; ➢ 每当main方法被执行时 java标准数据流
1. 标准的输入System.in ➢ System.in作为InputStream类的一个对象实例来实现标 准输入; ➢ Public int read() throws IOException ➢ 返回输入的一个字节 ➢ Public int read(byte b[] ) throws IOException ➢ 读入多个字节到缓冲区b中,返回读入的字节数 ➢ 如果输入流结束返回-1; ➢ Public int skip(long n) ➢ 在输入中跳过n个字节 ➢ 发生IO错误,抛出IOException异常
{ System.out.print(" "+buffer[i]);}
System.out.println();

第10章输入流与输出流精品PPT课件

第10章输入流与输出流精品PPT课件
exec(String command) 方法打开本地机的可执行文件或执行一个操作。
例子3(例子3中,Runtime对象打开windows平台上的记事 本程序和浏览器 )
第 1 页1 页1 页1 页1 页13 页
§10.2 文件字节输入流
java.io 包 提 供 了 大 量 的 流 类 , Java 把 InputStream抽象类的子类创建的流对象称作字 节输入流、OutputStream抽象类的子类创建的 流对象称作字节输出流,Java把Reader抽象类 的子类创建的流对象称作字符输入流、Writer 抽象类的子类创建的流对象称作字符输出流。
第 1 页1 页1 页1 页1 页2 页
概述
输入、输出流提供一条通道程序,可以使用这条通道 读取源中的数据或把数据传送到目的地。把输入流的指 向称作源,程序从指向源的输入流中读取源中的数据; 而输出流的指向是数据要去的一个目的地,程序通过向 输出流中写入数据把数据传送到目的地。
第 1 页1 页1 页1 页1 页3 页
例子2(Example10_2.java , ),例子2列出当前目录(应用程序 所在的目录)下全部java文件的名字 )
第 1 页1 页1 页1 页1 页11 页
§10.1.3 文件的创建与删除
当使用File类创建一个文件对象后,例如
File("c:\\myletter","letter.txt");
输入、输出流
第 1 页1 页1 页1 页1 页1 页
主要内容 • File类 • 文件字节输入、输出流 • 文件字符输入、输出流
(&)
• 缓冲流
(Buffered Reader & Buffered Writer)

C 输入输出流.ppt

C  输入输出流.ppt
ios_base
streambuf
ios
streambuf
istream
ostream
stringbuf istringstream
filebuf ifstream
iostream filebuf ofstream
stringbuf ostringstream
filebuf
fstream
stringstream
long l = 1000;
unsigned short us = 234;
float f = 3.23;
double df = 1.55;
char str[] = "C++ IO is very easy!";
cout << ch << endl;
cout << s << endl;
cout << i << endl;
例 将姓名和成绩按照固定宽度对齐输出,并利用*填充空白部分。 #include <iostream> #include <iomanip> using namespace std; int main(){
double values[ ] = {89.5, 78, 92.5, 84}; char *names[ ] = {"Zoot", "Jimmy", "Allen", "Stan"};
14
(4) 控制输出宽度 有时在发票上,了使打印机输出的内容和发票的样式能够对应上,需要使输出 项的输出宽度不小于某个宽度,若输出项自身的宽度大于指定的宽度,则使用 输出项自身的宽度。输出宽度的设置可以通过操作符setw。

第10章输入输出流03PPT课件

第10章输入输出流03PPT课件

5 字符串流
6 其他输入输出控制函数
Database & Information System Lab
14
插入与提取运算符重载
❖插入与提取运算符(<<和>>)只能实现 基本数据类型的输入输出操作
▪ 由C++预先定义的功能
• 以运算符重载的方式 • 【例如】使用流类对象cout输出整型数据: cout<<x; 相当于 cout.operator<<(x) • cout为对象名,operator<<相当于函数名
• 对象cin对应于键盘文件
▪ extern ostream cout;
• 对象cout对应于显示器文件
▪ extern ostream cerr;
• 对象cerr对应于显示器文件
▪ extern ostream clog;
• 对象clog对应于显示器文件
Database & Information System Lab
10
C++流类库简介
❖程序中可直接对上述4个预定义流类对象进 行读写,而不必先进行“打开文件”的操 作,使用完后也不需要进行“关闭文件” 的操作(因为这些流类对象与文件之间的 联系是预定义好的,可认为系统已为每一 程序都隐含进行了对它们的打开与关闭操 作)
Database & Information System Lab
• 磁盘文件可进行写也可进行读操作
• 显示器文件则只可进行写操作
• 键盘文件只可进行读操作
Database & Information System Lab
7
文件与流的概念
❖文件与流

输入输出处理

输入输出处理

三、目录旳操作
import java.io.*;
public class FileList2{
public static void main(String[] args){
File dir=new File(".");
File files[]=dir.listFiles();
System.out.println(dir);
File f1 = new File("D:/Java"); File f2 = new File("D:/Java","test.txt"); File f3 = new File(f1,"test.txt"); File f4 = new File("file://D:/Java/test.txt");
过滤字节流:FilterInputStream 和 FilterOutputStream。
FilterOutputStream(OutputStream os) FilterInputStream(InputStream is)
} }
8.3.2 InputStream/OutputStream
8.3.2 抽象类InputStream
int read( ) int read(byte b[ ]) int read(byte b[ ], int offset, int len) int available( ) void close( ) void mark(int readlimit) 标识输入流旳目前位置 boolean markSupported( ) void reset( ) long skip(long n)

8第10章输入和输出流处理精品PPT课件

8第10章输入和输出流处理精品PPT课件
随机文件(Random Access File)是可以按任意次序读写 的文件,其中每个记录的长度必须相同。在这种文件结构中, 每个记录都有其惟一的一个记录号,所以在读取数据时,只要 知道记录号,便可以直接读取记录。
二进制文件(Binary file)是字节的集合、它直接把二进 制码存放在文件中。除了没有数据类型或者记录长度的含义以 外,它与随机访问很相似。二进制访问模式是以字节数来定位 数据,在程序中可以按任何方式组织和访问数据,对文件中各 字节数据直接进行存取。
流,简单来说就是建立在面向对象基础上的一种抽象的处 理数据的工具。在流中,定义了一些处理数据的基本 操作,如读取数据,写入数据等,程序员是对流进行 所有操作的,而不用关心流的另一头数据的真正流向。 流不但可以处理文件,还可以处理动态内存、网络数 据等多种数据形式。
Porgramming in Java 2009.9-2010.1
Porgramming in Java 2009.9-2010.1
.
2
10.1 F绪ile论类
文件是存储在外部介质上的数据集合,文件是由数据记录组 成。记录是计算机处理数据的基本单位,它由一组具有共同属 性相互关联的数据项组成。操作系统正是以文件为单位对数据 进行管理,即从外存取数据时,必须先按文件名找到该数据所 在的文件;向外存写数据时,必须先建立一个以文件名标识的 文件,再向该文件输送数据。文件是存储数据的一种手段,在 数据库没有出现之前,文件是存储数据的主要手段。
❖ 文件/文件夹属性检测 boolean exists() boolean canWrite();boolean canRead(); boolean isFile();boolean isDirectory()
❖ 文件/文件夹操作: renameTo() mkdir()、mkdirs() createNewFile() delete()等。

第十章-输入输出流-(1)PPT课件

第十章-输入输出流-(1)PPT课件

-
4
10.2 FileInputStream类
使用文件输入流构造方法建立通往文件的输入流时,可能会出现 错误(也被称为异常)。为了把一个文件输入流对象与一个文件 关联起来,使用类似于下面所示的代码:
try { FileInputStream ins = new FileInputStream("myfile.dat");
构造方法。 (1)RandomAccessFile(String name,String mode) 参数name 用来确定一
个文件名,给出流的源,同时也是流目的地。参数mode取r(只读)或rw (可读写)决定流对文件的访问权限。 (2)RandomAccessFile(File file,String mode) 参数file 是一个File对象, 给出流的源,同时也是流目的地。参数mode取r(只读)或rw(可读写) 决定流对文件的访问权限。
read方法还有其它一些形式。这些形式能使程序把多 个字节读到一个字节数组中: int read(byte b[]); int read(byte b[], int off, int len);
-
6
10.3 FileOutputStream类
FileOutputStream提供了基本的文件写入能力。构造 方法: FileOutputStream(String name) FileOutputStream(File file)
-
1
I/O流
I/O流提供一条通道程序,可以使用这条通道把源中的字节序列送 给目的地。把输入流的指向称做源,程序从指向源的输入流中读 取源中的数据。而输出流的指向是字节要去的一个目的地(或用户), 程序通过向输出流中写入数据把信息传递到目的地。虽然I/O流经 常与磁盘文件存取有关,但是程序的源和目的地也可以是键盘、鼠 标、内存或显示器窗口。

第十章输入输出流

第十章输入输出流
str = buffer.str(); cout << str << endl; }
练习
//将字符串转化为整型数 int str_to_int
(char *str) {
int result;
/* 添加代码 */
return result;
}
//将整型数转化为字符串 char * int_to_str
<< mony1<<endl; cout << dollar_format
<< mony2<<endl; }
目录
10.1 导论 10.2 C++的流类库 10.3 设计自己的输入/输出操作 10.4 格式化输入/输出 10.5 常用成员函数输入/输出 10.6 检测流操作的错误 10.7 文 件 流
第十章:输入/输出流
罗月童 合肥工业大学,VCC研究室
int a;
导论
•iostream cin, cout;
cin >> a; 显示器
cout << a; 打印机
….
导论
C++语言本身没有提供输入、输出操作;
在C++语言中,将接受数据的地方称为目 标,发出数据的地方称为源,输入/输出 操作可被看作字符序列在源与目标之间 的流动;
protected: int x_precision int x_width int x_fill
public: int width( int len ) int precision(int num) int fill(char ch)
___3 0003 3___
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Porgramming in Java 2009.9-2010.1
. 6
绪论
10.1.2 获取文件属性信息
在Java中获取文件属性信息,如文件长度或文件 所在路径等,创建指向该文件的File对象,并调用相 关方法就可以。
例如:FileExample.java
❖ 文件/文件夹属性检测 boolean exists() boolean canWrite();boolean canRead(); boolean isFile();boolean isDirectory()
❖ 文件/文件夹操作: renameTo() mkdir()、mkdirs() createNewFile() delete()等。
❖ 路径分隔符:windows 下为“\”,Unix/Linux下为/”,Java访 问文件时路径分隔符要么用“\\” (转义字符),要么用“/”
Porgramming in Java 2009.9-2010.1
. 5
绪论
❖ 和文件名、路径相关 String getName():取文件/文件夹名 String getParent():取路径 String getPath():取包括路径+文件名
例如:FileExample3.java
Porgramming in Java 2009.9-2010.1
. 9
绪论
10.2 流基本概念
流,简单来说就是建立在面向对象基础上的一种抽象的处 理数据的工具。在流中,定义了一些处理数据的基本 操作,如读取数据,写入数据等,程序员是对流进行 所有操作的,而不用关心流的另一头数据的真正流向。 流不但可以处理文件,还可以处理动态内存、网络数 据等多种数据形式。
随机文件(Random Access File)是可以按任意次序读写 的文件,其中每个记录的长度必须相同。在这种文件结构中, 每个记录都有其惟一的一个记录号,所以在读取数据时,只要 知道记录号,便可以直接读取记录。
二进制文件(Binary file)是字节的集合、它直接把二进 制码存放在文件中。除了没有数据类型或者记录长度的含义以 外,它与随机访问很相似。二进制访问模式是以字节数来定位 数据,在程序中可以按任何方式组织和访问数据,对文件中各 字节数据直接进行存取。
主绪要内论容
1. Java File操作 File类 FileInputStream/FileOutputStream类 FileReader/FileWriter类 RandomAccessFile类 FileFilter
2. Java I/O流概述 InputStream类 OutputStream类 Reader类 Writer类
Porgramming in Java 2009.9-2010.1
. 2
绪论
10.1.1 File类概述
顺序文件(Sequential File)是普通的文本文件,顺序文 件中的记录按顺序一个接一个地排列。读写文件存取记录时, 都必须按记录顺序逐个进行。一行一条记录(一项数据),记 录可长可短,以“换行”字符为分隔符号。
Porgramming in Java 2009.9-2010.1
. 1
10.1 F绪ile论类
文件是存储在外部介质上的数据集合,文件是由数据记录组 成。记录是计算机处理数据的基本单位,它由一组具有共同属 性相互关联的数据项组成。操作系统正是以文件为单位对数据 进行管理,即从外存取数据时,必须先按文件名找到该数据所 在的文件;向外存写数据时,必须先建立一个以文件名标识的 文件,再向该文件输送数据。文件是存储数据的一种手段,在 数据库没有出现之前,文件是存储数据的主要手段。
例如:FileExample2.java
Porgramming in Ja0.1.4 显示目录文件
在Java中获取指定文件目录下的所有文件: ❖ 无条件获取所有文件:
1. list()——返回字符串数组; 2. listFiles()——返回File对象数组。 ❖ 有条件获取所有文件: 1. list(FilenameFilter filter); 2. listFiles(FileFilter filter)
Porgramming in Java 2009.9-2010.1
. 3
绪论
10.1.1 File类概述
在Java语言中,对文件的操作,主要通过File类来实现。首 先创建指向特定文件的File类对象,通过该对象相关方法 获取文件属性或进行目录操作。一个File对象可以代表一 个文件,也可以代表一个目录,甚至什么也不是(不存 在)。创建了一个File对象后,如果是目录,可以显示目 录清单,新建或删除目录;如果是文件,可以查询文件的 属性和路径信息,也可以输出和改名,但没有拷贝功能。 拷贝属于文件的读写,要用后面的I/O流类来解决。
Porgramming in Java 2009.9-2010.1
. 4
绪论
10.1.1 File类概述
利用File类构造方法创建File类对象: File f=new File(“Test.txt”); File f=new File(“d:\\java\\Test.txt”); File f=new File(“d:\\java\\”,”Test.txt”); File path=new File(“d:\\java\\”); File f=new File(path,“Test.txt”);
Porgramming in Java 2009.9-2010.1
. 7
绪论
10.1.3 文件重命名和删除
使用renameTo(File dest)方法重命名文件。使用 delete()方法删除已经存在的文件。如果操作成功,则 返回true;如果操作失败则返回false;
相关文档
最新文档