新Java程序设计实例教程教学课件 刘志成 ch07_Java输入输出技术

合集下载

Java输入输出系统PPT教案学习

Java输入输出系统PPT教案学习
的顶层抽象父类。
第26页/共71页
27
9.3 字符流
Reader和Writer都是抽象类。 Reader和Writer对象通常使用
InputStream或OutputStream对象 来创建 InputStream或OutputStream对象 封装了与最终数据源或数据终 点这种外设的连接。
22
输9.2 字节流
BufferedInputStream
BufferedInputStream keyboard = new BufferedInputStream(System.in);
把流包装到BufferedInputStream 对象中的效果是将基本数据流缓 冲入内存,使得一次可以从流中 读入大块数据(其最大值取决于缓 冲区的大小),第2然2页/共后71页让read方法可 以直接从内存缓冲区中读取数据,
StringWriter类与CharArrayWriter类是用于 将字符数据写入StringBuffer对象或char[]型数 组。通常这些类用来执行数据转换,使得转换结 果可以从基础数组或字符串中得到。
StringReader
用于读取字符串
第28页/共71页
29
9.3 字符流
用于像读取字符流一样读取二进制输入流的具体 类是InputStreamReader。
InputStreamReader keyboard = new InputStreamReader(System.in);
InputStreamReader类定义了3种read()方法,这些 方法将从基本流中读取一个或多个字节,并且使 用默认转换方式将它们由本地字符编码转换为 Unicode码后,再将它们返回。
大家可以把流想象为流入自己程序

Java程序设计ppt课件(完整版)

Java程序设计ppt课件(完整版)
是一行写不下一条语句时,允许一条语句占用多行。 • 逗号(,):分隔变量声明中的多个标识符。 • 圆括号:一般用在表达式、方法的参数和控制语句的条件表达
式中。注意圆括号可以嵌套,但需要严格配对使用。 • 方括号([]):用于声明数组,引用数组的元素值。 • 花括号({}):用于定义一个语句块,一个语句块是零条或多
1.2.4 知识总结
❖ 6.Java数据类型
▪ (1)基本数据类型
• 整数类型:byte,short,int,long。 • 浮点类型:float,double。 • 字符类型:char。 • 布尔类型:boolean。
▪ (2)引用数据类型
• 类类型:class,String,Double等。 • 接口类型:Interface • 数组类型:基本数据类型数组,对象型数组。
❖ 当主菜单与子菜单的连接成功之后, 若要保证菜单的重 复使用,则需要在主菜单及子菜单中添加循环控制语句来 实现,Java语言中的循环有while循环,do while循 环,for循环等。
1.3.3 解决方案
▪ 1、打开Eclipse。
▪ 2、添加一个包,名为com.esms,并复制Menus类到包中。
目录
第一章 Java与程序逻辑 第二章 面向对象程序设计基础 第三章 面向对象基本特性 第四章 常用对象使用 第五章 异常处理 第六章 I/O操作 第七章 多线程编程 第八章 Java的GUI可视界面编程
目录
第一章 Java与程序逻辑 第二章 面向对象程序设计基础 第三章 面向对象基本特性 第四章 常用对象使用 第五章 异常处理 第六章 I/O操作 第七章 多线程编程 第八章 Java的GUI可视界面编程
❖ 3.Java的开发环境
▪ 对于开发人员来说,除了需要上述的运行环境以外, 还需要开发环境的支持,Java的开发环境主要由以下 两部分组成。

《Java程序设计教程》课件 项目七 数据输入与输出

《Java程序设计教程》课件 项目七 数据输入与输出
int num1 = bufin.read(b1); // 将字节数组转换成字符串
String str1 = new String(b1, 0, num1);
System.out.println(str1); // 关闭缓冲输入流,同时关闭了文件
bufin.close();
// 将从键盘读取的数据放入字节数组b2中,num2为读入的字节个数
➢ in:声明形式为public static final InputStream in。使用时,我们可 以利用System.in.read()方法从键盘读入字节数据。不过,System.in 更经常被作为其他对象的参数,表示将键盘输入的数据作为其数 据源。
➢ out:声明形式为public static final PrintStream out。使用时,我们 可以利用System.out.print (“字符串”);语句和System.out.println(“字
int num2 = keyin.read(b2);
// 将字节数组转换成字符串
String str2 = new String(b2, 0, num2);
System.out.println(str2);
}
}
Java程序设计教程
2.字节输出流类OutputStream
字节输出流类OutputStream用于以字节形式将数据写入目的 地,其主要派生子类包括:FileOutputStream(将数据写入文件)、 PrintStream(用于输出各种类型的数据,如整数、浮点数、字符、 字符串、布尔值)等。
取的内容存储在字节数组b中。其返回 值为读入的字节数。如果因为已经到达
流末尾而不再有数据可用,则返回-1。

Java程序设计实践教程ppt.ppt

Java程序设计实践教程ppt.ppt
7
1.2.1 简单性 1.2.2 可靠性 1.2.3 安全性 1.2.4 解释器通用性 1.2.5 可移植性 1.2.6 分布性 1.2.7 独立性 1.2.8 面向对象性 1.2.9 高性能性 1.2.10 多线程性 1.2.11 动态性
8
1.3 面向对象程序设计
Java的核心是面向对象程序设计(OOP)。 OOP是一种功能强大的程序设计方法。从计算机 诞生以来,为适应程序不断增加的复杂程度,程 序设计方法论也有了巨大的变化。计算机发展初 期,程序设计是通过使用计算机面板输入二进制 机器指令来完成的。20世纪90年代,诞生了结构 化程序设计方法(如,C和Pascal)。结构化语 言使得编写中等复杂程度的程序相当轻松,但不 适合于大型工程的开发。为了冲破这一束缚,创 建了面向对象方法。面向对象程序设计采纳了结 构化程序设计的思想精华,并且新增了一些概念 和特性,使之性能大大提高。所有面向对象程序 设计语言,包括Java在内,都有三个特性:封装 (encapsulation)、多态性(polymorphism)和 继承(inheritance)。下面,我们分别简单介绍 它们的概念及用法。
2.3 运算符和表达式
数据的类型除了限定数据的存储方 式、取值范围之外,还定义了对该数据 类型可进行的操作即运算。表示各种不 同运算的符号称为运算符,参与运算的 数据称为操作数。
表达式是由操作数(如变量,常量 等)和运算符按一定语法形式组成的一 个有意义的式子。如:a+b、(a+b)* (a-b)、"number="+(p*p)。以上都是 有意义的表达式
3
本章学习要点:
• 了解Java的发展 • 了解Java与C、C++、C#之间的关系 • 了解Java的特点 • 理解Java是一种面向对象程序设计的方法及三

7Java程序设计教程 第七章输入和输出

7Java程序设计教程 第七章输入和输出
} }
Java程序设计教程
Java程序设计教程
第 20 页
字符输入流Reader
第七章
Java输入输出
方法
功能
public abstract void close() throws IOException
关闭输入流
public int read() throws IOException
读取单个字符
Java程序设计教程
Java程序设计教程
第 18 页
Writer类的主要方法如下表所示。
第七章
Java输入输出
方法 public abstract void close() throws IOException public void write(String str) throws IOException public void write(char[] cbuf) throws IOException public abstract void flush() throws IOException
第 22 页
方法
Scanner类 public Scanner(File source)
FileNotFoundException
第七章
Java输入输出
throws
功能 构造方法,从文件中接收内容
public Scanner(InputStream source)
构造方法,从指定的字节输入流中接收内容
public int read(char[] cbuf)throws IOException
将内容读取到字符数组之中,返回读入的长度
Javat语言程序设计教程
Java程序设计教程
第七章

《JAVA语言程序设计教程》课件第7章

《JAVA语言程序设计教程》课件第7章

1. Error与Exception类 Error类是错误类,表示仅靠程序本身无法修复的严重错 误,如内存溢出错误(OutOfMemoryError)、线程死亡错误 (ThreadDeath)等。这类异常发生时,Error类对象由Java虚拟机 生成并抛出给系统。本章不再讨论关于Error类型的异常处理, 因为它们通常是灾难性的致命错误,不是程序可以控制的。
异常类Exception的超类为Throwable类。Throwable类中 定义了方法来检索与异常相关的信息,并打印显示异常发生的 栈跟踪信息。这些方法的描述见表7.1。
表 7.1 Throwable 类定义的方法
方法
描述
Throwable fillInStackTrace( )
返回一个包含完整堆栈轨迹的 Throwable 对象,该对象可 能被再次引发
为防止和处理一个运行时错误,只需要把所要监控的代码 放进一个try语句块。紧跟try语句块的是一个能够捕获程序员 所希望的错误类型的catch语句块。下面的程序包含一个处理 例7-1中FileNotFoundException异常的try语句块和catch语句块。
【例 7-3】 捕获并处理例 7-1 中的异常。
寻找异常处理方法的过程从生成异常的方法开始,沿着方 法的调用栈逐层回朔,直到找到包含相应异常处理的方法为止。 然后,Java虚拟机把当前异常对象交给这个方法进行处理。这 一过程称为捕获(catch)异常。如果查遍整个调用栈仍然没有找 到合适的异常处理方法,Java虚拟机将终止Java程序的执行。
Java异常处理过程通过5个关键字控制:try、catch、 finally、throw和throws。其中,try、catch和finally构成异常处 理的完整语法。

第八章java的输入输出-PPT精品.ppt

第八章java的输入输出-PPT精品.ppt

File tests:
String getName()
boolean exists()
String getPath()
boolean canWrite()
String getAbsolutePath() boolean canRead()
String getParent()
boolean renameTo( File newNbaomoel)ean isFile()
17
第八章 java的输入输出
8.3 数据流的使用
18
第八章 java的输入输出
8.3 数据流的使用
1.如何使用文件流: 例题:将一个文件的内容拷贝到另一个文件。 见:copy.java
19
第八章 java的输入输出
介绍 File 类
File类用来访问本地文件系统中的文件和目 录。
1. 创建File类
6
第八章 java的输入输出
8.2 Java用于输入输出流的类
按所读写的数据类型分两类:
字符流类(Character Streams) 字符流类用于 向字符流读写16位二进制字符。
字节流类(Byte Streams) 字节流类用于向字 节流读写8位二进制的字节。一般地,字节流类 主要用于读写诸如图象或声音等的二进制数据。
7
第八章 java的输入输出
8.2 Java用于输入输出流的类
java.io中的基本流类:
说明:它们是抽象类,不能直接创建对象。
8
第八章 java的输入输出
8.2 Java用于输入输出流的类
1. InputStream 方法
The three basic read methods:

Java语言程序设计(第二版)课件第9章 输入输出处理

Java语言程序设计(第二版)课件第9章 输入输出处理
• 输入流:代表从外设流入程序的数据序列; • 输出流:代表从程序流向外设的数据序列。 • 字节流:在输入输出过程中以字节为单位。 • 字符流:在输入输出过程中以字符为单位。
3
9.1.2 输入输出类层次
InputStream
FileInputStream ByteArrayInputStream PipedInputStream SequenceInputStream StringBufferInputStream FilterInputStream
read(); read(char[] buffer); write(String str); write(char[] buffer);
9
9.3.3 缓冲字符流
BufferedReader和BufferedWriter • 构造方法: BufferedReader(Reader in) BufferedReader(Reader in,int size) BufferedWriter(Writer out) BufferedWriter(Writer out,int size) • 常用方法:readLine( ); newLine( );
13
9.4.3 文件的随机访问
使用下列构造方法创建流: RandomAccessFile(String name,String mode); RandomAccessFile(File name,String mode); mode的取值为”r”或”rw”
14
9.5.1 串行化的概念和目的
对象能记录自己状态以便将来再恢复的能力。 目的: (1)支持Java的对象持续性。 (2)支持对象的远程调用。 (3)严格遵守Java的对象模型,对象的串行化状

第7章Java的输入输出PPT课件

第7章Java的输入输出PPT课件
}
14
7.2 流的综述
流可以被理解为一条“导管”
• 这条“导管”有两个端口:
– 一端与数据源(当输入数据时)或数据宿(当输出数据时) 相连
• Java语言中通过File类来建立与磁盘文件的联系。 • File类用来获取或设置文件或目录的属性,但不
支持从文件读取数据或者往文件里写数据。 • 文件是许多程序的基本数据源和数据宿,是保存
永久数据和共享信息的媒体。在Java中,目录也 被当作文件,可以用list方法列出目录中文件名。
8
创建文件对象有三种构造方法
3
输入输出方法
• System类管理标准输入输出流和错误流
System.out: 把输出送到缺省的显示(通常是显示器) System.in 从标准输入获取输入(通常是键盘) System.err 把错误信息送到缺省的显示
• 每当main方法被执行时,就自动生成上述三个 对象
4
输入输出方法举例
public class ReadHello
import java.io.*;
class {
public static void main(String args[ ]) {
System.out.println("Enter : ");
char c;
StringBuffer buf = new StringBuffer();
try {
while ((c = (char)System.in.read()) != '\n')
• ⑶ File构造方法三:
– public <pathname>) – 例如: – File(“c:\\yao-bin\\test.java”);

Java程序设计教学做一体化教程第7章输入、输出流.ppt

Java程序设计教学做一体化教程第7章输入、输出流.ppt
注意:开始用功了!
2019/4/5
第 1 页
输入、输出流
《Java程序设计教学做一体化教程》 第7章
Power point 制作:耿祥义 张跃平
配合例子源代码一起使用
2019/4/5
第 2 页
主要内容
2019/4/5
第 3 页
7.1 File类
7.1.1核心知识 _1
1.构造方法 File类在java.io包中,程序使用File的对象来获取文件本身的一 些信息,例如文件所在的目录、文件的长度、文件读写权限等。 File类的构造方法有三个:
2019/4/5
第 8 页
7.1.4 实践环节
上 机 调 试 下 列 程 序 , 并 注 意 Runtime 对 象 是 怎 样 运 行 windows平台上的记事本程序和浏览器程序的。 Appilcation7_2.java
2019/4/5
第 9 页
7.2
文件字节输入流 7.2.1 核心知识_1
例如,如果文件字节输入流in指向的文件的内容是"apple is very good", 那么in首次调用read()方法: int m=in.read(); 将读取文件中的第一个字节,即读取到字母a,并返回字母a的字节值(97), 即m的值是97。
第 10 页
7.2.1 核心知识 _2
2.以字节为单位读文件
文件字节流可以调用从父类( InputStream)继承的 read 方法 顺序地、以字节为单位读取文件,只要不关闭流,每次调用 read 方法就顺序地读取文件中的其余内容,直到文件的末尾或文件字 节输入流被关闭。
◆ int read() 输入流调用该方法从源中读取单个字节的数据,该方法返回字节值 (0~255之间的一个整数),如果未读出字节就返回-1。

《JAVA语言程序设计教程》课件第8章

《JAVA语言程序设计教程》课件第8章

将File类中的主要方法按如下方式分类: (1) 文件名的处理: String getName():得到一个文件的名称(不包括路径)。 String getParent():得到一个文件的上一级目录名。 String getPath():得到一个文件的路径名。 String getAbsolutePath():得到一个文件的绝对路径名。 String renameTo(File newName):将当前文件名更名为给 定文件的完整路径。
【例8-3】 使用FileInputStream类打开并读取文件 Example8_3.Java。
import java.io.*; public class Example8_3 {
public static void main(String args[]) {
try{ //创建文件输入流对象
FileInputStream in = new FileInputStream("Example8_3.Java"); int n=2; byte buffer[] = new byte[n]; //读取输入流 while (in.read(buffer,0,n)!=-1){ String str=new String(buffer,0,n); System.out.print(str); } System.out.println(); //关闭输入流 in.close();
字节输入流类InputStream的类层次如图8.5所示。
图8.5 InputStream类层次
2. OutputStream类 字节输出流类OutputStream的主要方法描述如下: (1) public abstract void write(int b):将指定的字节写入此 输出流,要写入的字节是参数b的八个低位。 (2) public void write(byte[] b):将b.length个字节从指定的 byte数组写入此输出流。 (3) public void write(byte[] b, int off, int len):将指定的byte 数组中从偏移量off 开始的len个字节写入此输出流。 (4) public void flush():刷新此输出流并强制写出所有缓 冲的输出字节。 (5) public void close():关闭此输出流并释放与此流有关 的所有系统资源。

Java语言程序设计 (7)

Java语言程序设计 (7)

测试应用程序是否能从指定的文件中进行读取
boolean canWrite() boolean delbsolutePath() String getName()
String getParent()
boolean isAbsolute()
• System.in:标准输入流,默认设备是键盘。 • System.out:标准输出流,默认设畜是控制台。 • System.err:标准错误流,默认设备是控制台。
7.4 JAVA字节流的使用
• 7.4.1 字节输入流 • 7.4.2 字节输出流 • 7.4. 3 字节数组输入流 • 7.4.4 字节数组输出流 • 7.4.5 文件输入流 • 7.4.6 文件输出流 • 7.4.7 数据输入流 • 7.4.8 数据输出流
• 1.String[] list() • 该方法表示返回由File对象表示目录中所有文件和子目录名称组成的字符串数组,如果调用的File
对象不是目录,则返回null。 • 提示:list()方法返回的数组中仅包含文件名称,而不包含路径。但不保证所得数组中的相同字符
串将以特定顺序出现,特别是不保证它们按字母顺序出现。 • 2.String[] list(FilenameFilter filter) • 该方法的作用与list()方法相同,不同的是返回数组中仅包含符合filter过滤器的文件和目录,如果
void write(byte[] b)
把参数b指定的字节数组中的所有字节写到输出流中。
void write(byte[] b,int off,int len)
把参数b指定的字节数组中的若干字节写到输出流中。其 中,off指定字节数组中的起始下标,len表示元素个数。
void close()

ch07_Java输入输出技术

ch07_Java输入输出技术
20
• 字符流类
BufferedReader和BufferedWriter是由Reader和 Writer派生的子类。它们是字符方式缓冲流,前者 是输入缓存,后者是输出缓存,使用缓冲流可以避 免频繁地从物理设备中读取信息
InputSteamReader和OutputStreamWriter是由 Reader和Writer派生的子类,是建立在 InputStream和OutputStream类基础上的,相当于 字符流和字节流之间的转换器。InputSteamReader 从输入流中读取字节数据,并按照一定的编码方式 将其转换为字符数据;而OutputStreamWriter则将 字符数据转换成字节数据,再写入到输出流
写出 程序
输出流 information 目的端
文件 网络 内存
Java字节流类层次结构图
FileInputStream PipedInputStream ByteArrayInputStream SequenceInputStream StringBufferInputStream FilterInputStream ObjectInputStream
17
• 字节流类
通过字节流类实现文件复制
18
• 字节流类
处理流:BufferedInputStream和BufferedOutputStream类 是从FilterInputStream类和FilterOutputStream类派生的 子类,因此也称为过滤流,这两个类实现了带缓冲的过滤, 当反复操作一个输入/输出流时,可以避免重复连接对象 节点流:ByteArrayInputStream和ByteArrayOutputStream 称为字节数组输入和字节数组输出流 处理流: PrintStream称为打印流。PrintStream类是继承 OutputStream的子类,也是一种输出数据流,是一种将字符 转换成字节的输出数据流(如把文本框中的字符串写到文件 中)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档