java基础PPT
合集下载
Java开发基础PPT课件

运算相关注意事项
使用JDK库实现常用算法及函数 数值类型的自动转换规则 强制类型转换及截位 枚举类型的使用
字符串
字符串
代码点与代码单元 字符子串与拼接 相等的比较
注意事项
编码转换方法 子串下标计算 拼接的性能 String 方法 intern() 的应用
注释
注释
单行注释 多行注释 文档注释
–32,768 to 32,767
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
1 byte
–128 to 127
Type float double
Storage Requirement 4 bytes
8 bytes
Range
approximately ±3.40282347E+38F (6–7 significant decimal digits)
大纲
☞ 对象构造顺序
方法参数传递:按值调用 类设计基本原则
对象构造顺序
对象构造顺序
类装载时,按类声明中出现的次序执行静态初始化块或静态初始化 语句。
对象构造时: 所有数据域初始化为默认值 按类声明中出现的次序执行初始化块或初始化语句。 如果构造器第一行调用了第二个构造器,则跳转到第二个构造器 中执行,直到返回。 执行这个构造器的主体部分。
Java开发基础
目录
☞ 第1章 Java体系结构
第2章 基本程序结构设计 第3章 对象与类 第4章 继承 第5章 接口与内部类 第6章 事件处理 第7章 异常与调试 第8章 流与文件
Java体系结构
Java体系结构包括如下四大类技术:
Java程序设计语言 Java class文件格式 Java API Java 虚拟机
使用JDK库实现常用算法及函数 数值类型的自动转换规则 强制类型转换及截位 枚举类型的使用
字符串
字符串
代码点与代码单元 字符子串与拼接 相等的比较
注意事项
编码转换方法 子串下标计算 拼接的性能 String 方法 intern() 的应用
注释
注释
单行注释 多行注释 文档注释
–32,768 to 32,767
–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
1 byte
–128 to 127
Type float double
Storage Requirement 4 bytes
8 bytes
Range
approximately ±3.40282347E+38F (6–7 significant decimal digits)
大纲
☞ 对象构造顺序
方法参数传递:按值调用 类设计基本原则
对象构造顺序
对象构造顺序
类装载时,按类声明中出现的次序执行静态初始化块或静态初始化 语句。
对象构造时: 所有数据域初始化为默认值 按类声明中出现的次序执行初始化块或初始化语句。 如果构造器第一行调用了第二个构造器,则跳转到第二个构造器 中执行,直到返回。 执行这个构造器的主体部分。
Java开发基础
目录
☞ 第1章 Java体系结构
第2章 基本程序结构设计 第3章 对象与类 第4章 继承 第5章 接口与内部类 第6章 事件处理 第7章 异常与调试 第8章 流与文件
Java体系结构
Java体系结构包括如下四大类技术:
Java程序设计语言 Java class文件格式 Java API Java 虚拟机
Java基础培训PPT课件

} }
5
Java实用教程
2. Java程序的构成
2.1 逻辑构成 Java源程序逻辑构成分为两大部分:程序头包的引用和类
的定义。 1. 程序头包的引用 主要是指引用JDK软件包自带的包,也可以是自己定义的类。
引用之后程序体中就可以自由应用包中的类的方法和属性等。
6
Java实用教程 2. 类的定义 Java源程序中可以有多个类的定义,但必须有一个主类, 这个主类是Java程序运行的入口点。在应用程序中,主类为包 含main方法的类;在Java源程序中,主类的名字同文件名一致。 类的定义又包括类头声明和类体定义。类体中包括属性声 明和方法描述。
package org.seandeng.other;
import java.util.Date;
public class Person { String name;// 姓名 int age;// 年龄
Person () {}
Person (String name,int age) { = name; this.age = age;
10
Java实用教程 关键字又称保留字,是指Java语言中自带的用于标志数据 类型名或者程序构造名等的标识符,如public、double等。 转义符是指一些有特殊含义的、很难用一般方式表达的字 符,如回车、换行等。所有的转义符以反斜线(\)开头,后面跟 着一个字符来表示某个特定的转义符,如表2.1所示。
}
void setName(String name) { = name;
}
public String getName() { return name;
}
4
Java实用教程
public static void main(String[] args) { // 输入当前日期。 Date currDate = new Date(); System.out.println(currDate); // 实例化一个Person。该Person的姓名是Hjt,年龄是50. Person p1 = new Person("Hjt",50); System.out.println(); p1.setName("Jams"); System.out.println(); // 实例化另一个Person。该Person的姓名是Abm,年龄是45. Person p2 = new Person("Abm",45); System.out.println();
5
Java实用教程
2. Java程序的构成
2.1 逻辑构成 Java源程序逻辑构成分为两大部分:程序头包的引用和类
的定义。 1. 程序头包的引用 主要是指引用JDK软件包自带的包,也可以是自己定义的类。
引用之后程序体中就可以自由应用包中的类的方法和属性等。
6
Java实用教程 2. 类的定义 Java源程序中可以有多个类的定义,但必须有一个主类, 这个主类是Java程序运行的入口点。在应用程序中,主类为包 含main方法的类;在Java源程序中,主类的名字同文件名一致。 类的定义又包括类头声明和类体定义。类体中包括属性声 明和方法描述。
package org.seandeng.other;
import java.util.Date;
public class Person { String name;// 姓名 int age;// 年龄
Person () {}
Person (String name,int age) { = name; this.age = age;
10
Java实用教程 关键字又称保留字,是指Java语言中自带的用于标志数据 类型名或者程序构造名等的标识符,如public、double等。 转义符是指一些有特殊含义的、很难用一般方式表达的字 符,如回车、换行等。所有的转义符以反斜线(\)开头,后面跟 着一个字符来表示某个特定的转义符,如表2.1所示。
}
void setName(String name) { = name;
}
public String getName() { return name;
}
4
Java实用教程
public static void main(String[] args) { // 输入当前日期。 Date currDate = new Date(); System.out.println(currDate); // 实例化一个Person。该Person的姓名是Hjt,年龄是50. Person p1 = new Person("Hjt",50); System.out.println(); p1.setName("Jams"); System.out.println(); // 实例化另一个Person。该Person的姓名是Abm,年龄是45. Person p2 = new Person("Abm",45); System.out.println();
java基础ppt课件

03
封装
将对象的属性和方法封装 在类中,隐藏内部实现细 节,仅通过对外提供的接 口进行访问和操作。
继承
子类可以继承父类的属性 和方法,实现代码复用和 扩展。
多态
子类可以重写父类的方法 ,实现同一方法在不同对 象上的不同表现。
接口与抽象类
接口的定义
接口是一种引用类型,用于定义一组 方法的规范,但不包含方法的实现。
抛出自定义异常
在方法中,可以使用throw语句抛出自定义异常。抛出异常时,需要创建一个异 常对象并将其抛出。
异常处理的最佳实践
尽量避免异常
合理使用try-catch语句
保持异常的原子性
提供有意义的错误信息
应该尽量编写健壮的代码,避 免出现异常。例如,进行空值 检查、范围检查等。
不要过度使用try-catch语句, 只在必要时使用。对于可以预 见的异常情况,应该尽量在代 码中处理,而不是依赖于trycatch语句。
可以使用多个catch语句来处理不同类型的异常 ,每个catch语句处理一种特定的异常类型。
自定义异常
创建自定义异常类
可以通过继承Exception类或RuntimeException类来创建自定义异常类。继承 Exception类创建的是检查型异常,而继承RuntimeException类创建的是非检查 型异常。
丰富的API
Java语言提供了大量的API, 涵盖了IO、网络编程、数据库 操作、图形界面开发等方面。
Java语言的应用领域
Web开发
Java语言在Web开发领域有着广泛的应用 ,如Servlet、JSP、Struts等框架。
游戏开发
Java语言也可以用于游戏开发,如 Minecraft等游戏就是使用Java语言开发 的。
JAVA自学教程(完整版)PPT课件(2024)

二分查找
针对有序数组,每次取中间元 素与目标元素比较,缩小查找 范围
12
03 面向对象编程基础
2024/1/27
13
类与对象的概念
类的定义
类是对象的模板,它定 义了对象的属性和方法 。
2024/1/27
对象的概念
对象是类的实例,具有 类定义的属性和行为。
类与对象的关系
类是对象的抽象描述, 而对象是类的具体实现 。
2024/1/27
32
Socket通信原理及示例
Socket通信原理
理解Socket通信的基本原理,掌握Socket 类和ServerSocket类的使用。
TCP编程
学习基于TCP协议的Socket通信,实现客户 端与服务器之间的数据传输。
多线程处理
掌握多线程在Socket通信中的应用,提高服 务器的并发处理能力。
TreeSet类的特点和使用
TreeSet是Set接口的另一个常用实现类,它基于红黑树实 现。TreeSet会对元素进行排序,因此它适用于需要排序的 场景。
26
Map接口及其实现类
01
Map接口的定义和特 点
Map接口表示一种键值对的映射关系 。Map中的每个元素都包含一个键和 一个值,键在Map中是唯一的。
学习ReentrantLock锁的使用,了解 公平锁与非公平锁的区别。
2024/1/27
等待/通知机制
掌握Object类的wait()、notify()和 notifyAll()方法的使用,实现线程间 的通信。
死锁与避免
了解死锁的概念及产生条件,学习如 何避免死锁的发生。
31
网络编程基础
网络编程概述
ArrayList类的特点和使用
java基础课件ppt下载

总结词
代码简洁、易于维护
详细描述
在开发简单计算器的过程中,学生需要注重代码的简洁性 和可维护性。通过编写简洁、易读的代码,学生可以养成 良好的编程习惯,提高代码质量。
网络聊天室
总结词
网络通信、实时交互
详细描述
网络聊天室是一个涉及网络通信和实时交互的Java实践项 目。通过开发网络聊天室,学生可以深入了解Java的网络 编程和多线程技术,提高编程技能。
面向对象编程基础
类与对象
类是对象的抽象,定义了对象的 属性和方法。对象是类的实例,
具有类所定义的特征和行为。
封装与继承
封装是将对象的属性和方法封装 在类中,隐藏内部实现细节,只 暴露必要的接口。继承是子类继 承父类的属性和方法,并可以扩
展或覆盖它们。
多态与抽象
多态是指一个接口可以有多种实 现方式,或者一个对象可以表现 出多种形态。抽象是通过声明方 法而不实现具体实现来定义接口
数据库连接与操作
总结词
SQL语句与事务管理
详细描述
介绍SQL语句的基本语法和常用操作,以及如何在Java中使 用JDBC进行事务管理。
数据库连接与操作
总结词
数据集与结果集处理
详细描述
介绍如何使用Java中的ResultSet和 DataBaseMetaData等类进行数据集 和结果集的处理,包括获取数据、遍 历结果集等操作。
网络编程
中的Socket编程,包括如何创建Socket对象、连接到远 程主机、发送和接收数据等,以及如何处理多线程和异常。
总结词
URL和URLConnection
网络编程
• 详细描述:介绍Java中的URL和URLConnection 类,以及如何使用它们进行网络资源的访问和数 据传输。
代码简洁、易于维护
详细描述
在开发简单计算器的过程中,学生需要注重代码的简洁性 和可维护性。通过编写简洁、易读的代码,学生可以养成 良好的编程习惯,提高代码质量。
网络聊天室
总结词
网络通信、实时交互
详细描述
网络聊天室是一个涉及网络通信和实时交互的Java实践项 目。通过开发网络聊天室,学生可以深入了解Java的网络 编程和多线程技术,提高编程技能。
面向对象编程基础
类与对象
类是对象的抽象,定义了对象的 属性和方法。对象是类的实例,
具有类所定义的特征和行为。
封装与继承
封装是将对象的属性和方法封装 在类中,隐藏内部实现细节,只 暴露必要的接口。继承是子类继 承父类的属性和方法,并可以扩
展或覆盖它们。
多态与抽象
多态是指一个接口可以有多种实 现方式,或者一个对象可以表现 出多种形态。抽象是通过声明方 法而不实现具体实现来定义接口
数据库连接与操作
总结词
SQL语句与事务管理
详细描述
介绍SQL语句的基本语法和常用操作,以及如何在Java中使 用JDBC进行事务管理。
数据库连接与操作
总结词
数据集与结果集处理
详细描述
介绍如何使用Java中的ResultSet和 DataBaseMetaData等类进行数据集 和结果集的处理,包括获取数据、遍 历结果集等操作。
网络编程
中的Socket编程,包括如何创建Socket对象、连接到远 程主机、发送和接收数据等,以及如何处理多线程和异常。
总结词
URL和URLConnection
网络编程
• 详细描述:介绍Java中的URL和URLConnection 类,以及如何使用它们进行网络资源的访问和数 据传输。
java入门教程(一)PPT课件

运算符与控制流语句
运算符
Java支持多种运算符,如算术运算符(+、-、*、/、% )、关系运算符(==、!=、>、<、>=、<=)和逻辑 运算符(&&、||、!)等。
控制流语句
Java提供了多种控制流语句,如if语句、switch语句和 循环语句(for、while、do-while)等,用于控制程序 的执行流程。
1995年,Java正式发布,并成为一种独立的开发 平台。
2004年,Java SE 5.0版发布,引入了新特性如泛 型、for-each循环和自动装箱等。
java的应用领域
Web应用程序 开发
Java的Web开发技术, 如Servlet和JSP等,可 以轻松构建高效的Web 应用程序。
企业级应用
05
java开发环境配置
jdk的安装与配置
总结词
JDK是Java开发的核心工具包,需要安装并正确配置。
详细描述
JDK是Java Development Kit的缩写,是Java开发的核 心工具包,需要从Oracle官方网站下载并安装。在安装 过程中,需要选择适合自己系统的版本,并按照提示完 成安装过程。安装完成后,需要通过环境变量设置,将 JDK添加到系统路径中,以便在命令行或者其他IDE中直 接调用Java命令。
2023
java入门教程(一)ppt课件
目录
• java概述 • java基础知识 • java核心技术 • java常用类库 • java开发环境配置 • java入门案例——简易学生信息管理系统的实现
01
java概述
java的定义与特点
1
于开发跨平台应用程序和服务端应用程序等。
java基础课件ppt

3
类和对象是面向对象编程的核心概念,是实现软 件设计的基础。
继承和多态
01 继承是面向对象编程的一个重要特性,它允许一 个类继承另一个类的属性和行为。
02 多态是指一个接口可以有多种实现方式,或者一 个对象可以表现出多种形态。
03 继承和多态是实现代码重用和扩展的重要手段, 可以提高软件的可维护性和可扩展性。
自定义异常
创建自定义异常类
继承自Exception或其子类,并添加必要的成员 变量和方法。
在方法中抛出自定义异常
在需要抛出异常的地方,使用throw语句抛出自 定义异常。
在调用者处处理自定义异常
捕获自定义异常并处理,或者继续向上层调用者传递异常。
01
Java多线程编程
线程的概念和分类
总结词
理解线程的概念和分类是Java多线程编程的基础。
封装和抽象
封装是将对象的属性和行为封装在一个类中,隐藏对象的内部实现细节, 只通过类提供的接口与外部交互。
抽象是通过定义抽象类或接口来规定一组操作,具体的实现细节由子类来 完成。
封装和抽象是实现信息隐藏和代码重用的重要手段,可以提高软件的安全 性和可维护性。
01
Java常用类库
String类
字符串操作
集成开发环境
可以选择使用Eclipse、IntelliJ IDEA等集成开发环境(IDE),这 些IDE提供了代码编辑、编译、调试等功能。
配置环境变量
在安装JDK和IDE后,需要配置环境变量,以便在命令行中访问 Java和Javac命令。
01
Java基础语法
Java数据类型
整型:byte、short、int 、long
Java基础课件Βιβλιοθήκη THE FIRST LESSON OF THE SCHOOL YEAR
《Java基础课件(PPT)》

注解和反射的概念和使用
注解是Java的强大特性之一,它可以为代码提供额外的信息和功能。反射是一种机制,允许我们在运行时检查 和操作类的属性和方法。了解注解和反射可以提高我们的编程效率和代码质量。
Java的性能调优和优化技巧
性能是软件开发过程中的一个重要问题。Java提供了各种调优和优化技巧,使 我们能够提高应用程序的性能和响应速度。
面向对象编程概念和Java中的 封装、继承和多态
面向对象编程是一种强大且灵活的编程范式。Java提供了封装、继承和多态等 面向对象的特性,让程序员可以更好地组织和管理代码。
Java中的异常处理和文件IO操 作
异常处理是Java中重要的编程概念,它可以帮助我们识别和处理程序中的错误 情况。通过学习文件IO操作,我们可以读写和操作文件,实现数据的持久化 和交换。
Java的安全机制和加密算法
安全是软件开发的重要方面。Java提供了各种安全机制和加密算法,使我们可以保护数据的机密性和完整性, 确保应用程序的安全。
Java的集合和泛型
集合是Java中常用的数据结构,用于存储和操作多个对象。Java的集合框架提供了各种集合类和接口,使我们 能够轻松地操作数据。泛型是Java的一项强大的特性,它可以增加代码的安全性和可读性。
理解Java语言的语法和结构
Java语言具有清晰的语法和结构,使开发人员可以轻松编写可读性强的代码。 了解Java的语法和结构对于正确编写和调试程序至关重要。
Java数据类型、运算符、流程 控制和数组
掌握Java的数据类型可以帮助你有效地处理各种数据。了解运算符和流程控制 语句可以使你的程序实现各种功能。而数组则是一种重要的数据结构,在Java 中经常用于存储和操作多个相同类型的元素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
——面向字符的流 • 面向字符的流
▫ 针对字符数据的特点进行过优化,提供一些 面向字符的有用特性
▫ 源或目标通常是文本文件
Java语言程序设计(第2版),郑莉,清华大学10
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字符的流
• 实现内部格式和文本文件中的外部格式之间 转换
▫ 内部格式:16-bit char 数据类型 ▫ 外部格式:
System.err:PrintStream类型的,代表标准 错误信息输出流,默认状态对应于屏幕输出
Java语言程序设计(第2版),郑莉,清华大学17
6.1 输入/输出流
Java语言程序设计(第2版),郑莉,清华大学 8
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——java.io包的顶级层次结构 • 面向字符的流:专门用于字符数据 • 面向字节的流:用于一般目的
Java语言程序设计(第2版),郑莉,清华大学 9
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
▫ “信息”也可以是任何类型的,例如一个对象、串 字符、图像、声音等
• 通过使用java.io包中的输入/输出流类就可以达到 输入输出信息的目的
Java语言程序设计(第2版),郑莉,清华大学 3
6.1 输入/输出流
6.1.1 I/O流的概念
• I/O流(Input/Output)
▫ 在Java中将信息的输入与输出过程抽象为I/O流 输入是指数据流入程序 输出是指数据从程序流出
Java语言程序设计(第2版)
第 6 章 输入/输出流和文件
目录
• 6.1 输入/输出流 • 6.2 文件读写 • 6.3 本章小结
Java语言程序设出流
• 通常程序需要从外部获取/输出信息
▫ 这个“外部”范围很广,包括诸如键盘、显示器、 文件、磁盘、网络、另外一个程序等
• 输出流 ▫ 当程序需要向目标位置写信息时,便需要打开一个输出流,程 序通过输出流向这个目标位置写信息
Java语言程序设计(第2版),郑莉,清华大学 5
6.1 输入/输出流
6.1.1 I/O流的概念(续)
——源和目标的类型
对象 disk file running program monitor keyboard Internet connection image scanner mouse
▫ 一个流就是一个从源流向目的地的数据序列 ▫ IO流类一旦被创建就会自动打开 ▫ 通过调用close方法,可以显式关闭任何一个流,如果
流对象不再被引用,Java的垃圾回收机制也会隐式地 关闭它
Java语言程序设计(第2版),郑莉,清华大学 4
6.1 输入/输出流
6.1.1 I/O流的概念(续)
• 输入流 ▫ 为了从信息源获取信息,程序打开一个输入流,程序可从输入 流读取信息
源? 目标? 或两者? Both Both
Destination Source Both Source Source
Java语言程序设计(第2版),郑莉,清华大学 6
6.1 输入/输出流
6.1.1 I/O流的概念(续)
——读写数据的方法
• 不论数据从哪来,到哪去,也不论数据本身是何类型,读 写数据的方法大体上都是一样的:
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——标准输入输出
• 标准输入输出流对象
▫ System类的静态成员变量 ▫ 包括
System.in: InputStream类型的,代表标准 输入流,这个流是已经打开了的,默认状态对 应于键盘输入。
System.out:PrintStream类型的,代表标准 输出流,默认状态对应于屏幕输出
读
打开一个流 读信息 关闭流
写 打开一个流
写信息 关闭流
Java语言程序设计(第2版),郑莉,清华大学 7
6.1 输入/输出流
6.1.2 预定义的I/O流类概述
• 输入/输出流可以从以下几个方面进行分类
▫ 从流的方向划分
输入流 输出流
▫ 从流的分工划分
节点流 处理流
▫ 从流的内容划分
面向字符的流 面向字节的流
Java语言程序设计(第2版),郑莉,清华大学14
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字节的流 • InputStream和OutputStream
▫ 是用来处理8位字节流的抽象基类,程序使用这两 个类的子类来读写8位的字节信息
▫ 分为两部分
节点流 处理流
Java语言程序设计(第2版),郑莉,清华大学15
▫ 多数程序使用这两个抽象类的一系列子类来读入/写 出文本信息
例如FileReader/FileWriter用来读/写文本文件
Java语言程序设计(第2版),郑莉,清华大学12
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字符的流
阴影部分为节点流
Java语言程序设计(第2版),郑莉,清华大学13
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字符的流
• 面向字符的抽象类——Reader和Writer
▫ java.io包中所有字符流的抽象基类 ▫ Reader提供了输入字符的API ▫ Writer提供了输出字符的API ▫ 它们的子类又可分为两大类
节点流:从数据源读入数据或往目的地写出数据 处理流:对数据执行某种处理
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字节的流 • 数据源或目标中含有非字符数据,必须用字节流
来输入/输出 • 通常被用来读写诸如图片、声音之类的二进制数
据 • 绝大多数数据是被存储为二进制文件的,世界上
的文本文件大约只能占到2%,通常二进制文件要 比含有相同数据量的文本文件小得多
UTF(Universal character set Transformation Format):很多人称之为"Universal Text Format"
包括ASCII 码及非ASCII 码字符,比如: 斯拉 夫(Cyrillic)字符, 希腊字符,亚洲字符等
Java语言程序设计(第2版),郑莉,清华大学11
▫ 针对字符数据的特点进行过优化,提供一些 面向字符的有用特性
▫ 源或目标通常是文本文件
Java语言程序设计(第2版),郑莉,清华大学10
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字符的流
• 实现内部格式和文本文件中的外部格式之间 转换
▫ 内部格式:16-bit char 数据类型 ▫ 外部格式:
System.err:PrintStream类型的,代表标准 错误信息输出流,默认状态对应于屏幕输出
Java语言程序设计(第2版),郑莉,清华大学17
6.1 输入/输出流
Java语言程序设计(第2版),郑莉,清华大学 8
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——java.io包的顶级层次结构 • 面向字符的流:专门用于字符数据 • 面向字节的流:用于一般目的
Java语言程序设计(第2版),郑莉,清华大学 9
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
▫ “信息”也可以是任何类型的,例如一个对象、串 字符、图像、声音等
• 通过使用java.io包中的输入/输出流类就可以达到 输入输出信息的目的
Java语言程序设计(第2版),郑莉,清华大学 3
6.1 输入/输出流
6.1.1 I/O流的概念
• I/O流(Input/Output)
▫ 在Java中将信息的输入与输出过程抽象为I/O流 输入是指数据流入程序 输出是指数据从程序流出
Java语言程序设计(第2版)
第 6 章 输入/输出流和文件
目录
• 6.1 输入/输出流 • 6.2 文件读写 • 6.3 本章小结
Java语言程序设出流
• 通常程序需要从外部获取/输出信息
▫ 这个“外部”范围很广,包括诸如键盘、显示器、 文件、磁盘、网络、另外一个程序等
• 输出流 ▫ 当程序需要向目标位置写信息时,便需要打开一个输出流,程 序通过输出流向这个目标位置写信息
Java语言程序设计(第2版),郑莉,清华大学 5
6.1 输入/输出流
6.1.1 I/O流的概念(续)
——源和目标的类型
对象 disk file running program monitor keyboard Internet connection image scanner mouse
▫ 一个流就是一个从源流向目的地的数据序列 ▫ IO流类一旦被创建就会自动打开 ▫ 通过调用close方法,可以显式关闭任何一个流,如果
流对象不再被引用,Java的垃圾回收机制也会隐式地 关闭它
Java语言程序设计(第2版),郑莉,清华大学 4
6.1 输入/输出流
6.1.1 I/O流的概念(续)
• 输入流 ▫ 为了从信息源获取信息,程序打开一个输入流,程序可从输入 流读取信息
源? 目标? 或两者? Both Both
Destination Source Both Source Source
Java语言程序设计(第2版),郑莉,清华大学 6
6.1 输入/输出流
6.1.1 I/O流的概念(续)
——读写数据的方法
• 不论数据从哪来,到哪去,也不论数据本身是何类型,读 写数据的方法大体上都是一样的:
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——标准输入输出
• 标准输入输出流对象
▫ System类的静态成员变量 ▫ 包括
System.in: InputStream类型的,代表标准 输入流,这个流是已经打开了的,默认状态对 应于键盘输入。
System.out:PrintStream类型的,代表标准 输出流,默认状态对应于屏幕输出
读
打开一个流 读信息 关闭流
写 打开一个流
写信息 关闭流
Java语言程序设计(第2版),郑莉,清华大学 7
6.1 输入/输出流
6.1.2 预定义的I/O流类概述
• 输入/输出流可以从以下几个方面进行分类
▫ 从流的方向划分
输入流 输出流
▫ 从流的分工划分
节点流 处理流
▫ 从流的内容划分
面向字符的流 面向字节的流
Java语言程序设计(第2版),郑莉,清华大学14
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字节的流 • InputStream和OutputStream
▫ 是用来处理8位字节流的抽象基类,程序使用这两 个类的子类来读写8位的字节信息
▫ 分为两部分
节点流 处理流
Java语言程序设计(第2版),郑莉,清华大学15
▫ 多数程序使用这两个抽象类的一系列子类来读入/写 出文本信息
例如FileReader/FileWriter用来读/写文本文件
Java语言程序设计(第2版),郑莉,清华大学12
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字符的流
阴影部分为节点流
Java语言程序设计(第2版),郑莉,清华大学13
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字符的流
• 面向字符的抽象类——Reader和Writer
▫ java.io包中所有字符流的抽象基类 ▫ Reader提供了输入字符的API ▫ Writer提供了输出字符的API ▫ 它们的子类又可分为两大类
节点流:从数据源读入数据或往目的地写出数据 处理流:对数据执行某种处理
6.1 输入/输出流
6.1.2 预定义的I/O流类概述(续)
——面向字节的流 • 数据源或目标中含有非字符数据,必须用字节流
来输入/输出 • 通常被用来读写诸如图片、声音之类的二进制数
据 • 绝大多数数据是被存储为二进制文件的,世界上
的文本文件大约只能占到2%,通常二进制文件要 比含有相同数据量的文本文件小得多
UTF(Universal character set Transformation Format):很多人称之为"Universal Text Format"
包括ASCII 码及非ASCII 码字符,比如: 斯拉 夫(Cyrillic)字符, 希腊字符,亚洲字符等
Java语言程序设计(第2版),郑莉,清华大学11