chp7.ppt

Size: px
Start display at page:

Download "chp7.ppt"

Transcription

1 Java 软件设计基础 7. Java 的基本可重用类

2 1.Java 可重用类的结构 Java 语言中将功能相关的可重用类组织成包, 可重用类的继承层次和包的组织呈树形结构 M L L L L L

3 Java 可重用类按功能可划分为 : java.lang 是 Java 语言的核心包, 主要含有与语言相关的类 ; 提供如基本数据类型处理 基本数值函数 字符串处理 线程 异常处理等基本功能 ; 由解释程序自动加载, 不需显式说明 java.io 主要含有与输入 / 输出相关的类, 提供对不同的输入 / 输出设备读写数据的支持 java.applet 提供创建用于浏览器的小应用程序 ( 即 Applet 小程序 ) 所需要的类 ; 开发 Applet 小程序时必须引入这个包并将主类定义为 Applet 的子类

4 java.util Java 实用程序包, 提供了许多实用工具 java.awt java.swing 抽象窗口工具包, 提供了图形用户界面设计 布局管理 用户交互控制 事件响应的类 java.math Java 语言数学包, 包括数学运算类和小数运算类, 提供完善的数学运算方法 java.sql Java 数据库包, 提供了 Java 语言访问处理数据库的接口和类, 是实现 JDBC(JavaDataBaseConnect-Java) 的核心类库

5 2.java.lang 包 java.lang 包是 Java 语言的核心部分 每个 java 类都隐含语句 import java.lang.* ; java.lang 包中包含了 Object 类, 该类是 Java 中整个类层次结构的根结点 java.lang 包定义了基本数据类型的类 :Boolean Character Byte Integer Short Long Float 和 Double 还定义了 String 和 StringBuffer 类 以上这些类支持数字类型的转换和字符串操作 java.lang 中定义的其他类 : Class 为运行时搜集的信息, 如对 instanceof 操作符的支持等 ; Math 提供像 PI 和 E 这样的数学常数以及各种函数 ; System 提供对操作系统的访问, 包括默认的 I/O 流 环境变量 自动垃圾收集 系统时间和系统属性, 许多 System 方法可以访问 Runtime 类的方法

6 Math 类 Runtime 提供对操作系统的访问, 使用它可以使应用程序容易与它所运行的环境协调 ; Thread 与 java.lang.runnable 接口协同作用提供对多线程的支持 ; Throwable 是所有异常 (Exception) 的基类, 应用程序运行发生意外时, 异常和错误类就发出信号 该类封装了一些数学函数和常量, 其中的方法和变量都是静态的, 因此不能被子类化或实例化 sin(double a) 返回角度 a 的 sin 值 三角函数 cos(double a) 返回角度 a 的 cos 值 tan(double a) 返回角度 a 的 tan 值 asin(double r) 返回 sin 值为 r 的角度值 acos(double r) 返回 cos 值为 r 的角度值 atan(double r) 返回 tan 值为 r 的角度值

7 乘方舍入其他 pow(double y,double x) 返回 y 的 x 次方 exp(double x) 返回 e 的 x 次方 log(double x) 返回 x 的自然对数 sqrt(double x) 返回 x 的平方根 ceil(double a) 返回大于或等于 a 的最小整数值 floor(double a) 返回小于或等于 a 的最小整数值 rint(double a) 返回舍入尾数后最接近 a 的整型值 round(float a) 返回舍入尾数后最接近 a 的整型值 round(double a) 返回舍入尾数后最接近 a 的长整型值 abs(a) max(a,b) min(a,b) 返回 a 的绝对值 返回 a 和 b 的最大值 返回 a 和 b 的最小值

8 random 方法 生成大于等于 0.0 小于 1.0 的 double 型随机数 一般的 : a+math.random()*b 返回 a 到 a+b 之间的随机数, 不包括 a+b 实例学习 : 生成随机字符 Unicode 字符集在 0 到 FFFF( 即十进制的 65535) 之间 生成一个随机字符亦即生成在 0~65535 之间的一个随机整数

9 随机生成 a - z A - Z 0-9 之间的字符

10 随机显示 100 个小写字母

11 3.java.util 包 java.util 包的构成 由一些实用类组成, 有些类是 Java 语言不可缺少的

12 日期时间类 Date 提供了独立于具体系统的日期 / 时间的表示形式 日期时间类的创建方法 : 把当前日期和时间保存到所创建的 Date 实例中 : public Date() 根据给定的 year month date 参数创建一个 Date 实例 : public Date(int year,int month,int date) 根据给定的 year month date hours minutes 参数创建一个 Date 实例 : public Date(int year,int month,int date,int hours,int minutes) 根据给定的 year month date hours minutes seconds 参数创建一个 Date 实例 : public Date(int year,int month,int date,int hours,int minutes,int seconds)

13 日期时间类提供的方法 : public int getyear( ( ) 返回当前日期中的年份 public int getmonth( ( ) 返回当前日期中的月份 public int getdate( ( ) 返回当前日期在月份中的日期值 (0~31( 31) public int getday( ( ) 确认某天是星期几 public int gethours( ( ) 返回当前日期中的小时数 public int getminutes( ( ) 返回当前日期中的分钟数 public int getseconds( ( ) 返回当前日期中的秒数 public boolean befor(date when) public boolean after(date when) public boolean equal(object obj) 判断日期实例所代表的时间是否早于 when 判断日期实例所代表的时间是否晚于 when 比较两个日期对象是否相等 public String tostring( ( ) 返回当前日期参数的字符串表示形式

14 向量类 Vector 向量和数组的异同 : 适合使用向量的场合 : 如果需要频繁进行对象的插入和删除, 或需要处理的对象数目不定 ; 列表成员全部都是对象, 或者可以用对象方便的表示 ; 需要很快确定列表内是否存在某一特定对象及其存放位置 适合使用数组的场合 : 所需处理的对象数目固定或大致可以确定, 尽管有些对象经常变化 ; 所需处理的是简单数据类型 向量与数组各有优缺点 : 向量提供了一种类似 动态数组 的概念, 而且同一个向量实例可以存放多种不同类型的对象, 但是它不能直接处理简单数据类型 ; 数组可以直接处理简单数据类型, 但只能保存同一类型的数据, 并且它只能保存固定大小的列表, 必须一次申请所有的存储单元

15 向量类的构造方法 用指定的向量容量和增量参数创建一个空向量 : Vector(int capacity,int capacityincrement) 用给定的向量容量参数创建一个空向量 : Vector(int capacity) 创建一个空向量 : Vector( ) 注意 : 容量增量规定了当向量元素个数达到极限时, 需一次性扩充的向量容量大小 如果容量增量参数为 0, 则每次向量容量都将增加一倍大小 向量类提供了很多方法, 用于进行元素的插入和删除操作以及对象的查找, 以及向量维护 栈类 Stack 是向量类的子类, 满足先进后出的要求

16 Random 类 一个更为有效的随机实数产生器在 Random 类中给出 java.util.random nextint nextint(n) nextlong() nextdouble() nextfloat() nextboolean() 可以试着将前面的随机字符产生程序用 Random 类提供的方法重写

17 4. 输入 / 输出流 流 (stream) 流是指按照顺序组织的 从起点到终点的数据的集合 流的特点是数据的发送与获取都是按数据序列顺序进行的, 每个数据必须等待它前面的数据发送或读入才能被读写 流式输入 / 输出是一种很常见的输入 / 输出方式, 它是一个比文件所包含的范围更为广泛的概念 Java 提供了丰富的输入 / 输出操作, 它们都是从 流 读出和向 流 写入的 任何 Java 中表示数据源的对象都会提供以数据流的方式读写它的数据的方法 I/O 流 流一般分为输入流和输出流 输入流将外部设备数据导入到计算机中 ; 输出流将数据引导到外部设备

18 I/O 流表示一个输入来源或者输出目标, 支持很多不同类型的数据, 如简单字节 基本数据类型 本地化字符和对象 Java 语言将流的相关操作分为两个部分 : 标准输入 / 输出流 : 包含在 java.lang 中, 用于标准输入 / 输出设备的流操作 ; 更丰富的流操作 : 包含在 java.io 中, 要使用这些流类必须先用 import 语句引入 流的工作流程 读入数据 :

19 程序先从数据源 (data source) 打开一个流, 然后从这个流中顺序读取数据, 最后关闭流 输出数据 程序打开一个流, 通过这个流中输出目标顺向数据宿 (data destination) 写入数据, 最后关闭流 Java 数据流包括多种类型的操作, 从不同的角度可以分为多种不同的类型 根据操作对象的数据特征, 即输入 / 输出的数据类型, 可分为 字符流 (Character Streams) 字节流 (Byte Streams)

20 根据流中的数据传输的方向分为 : 输入流 输出流 根据流的应用分为 : 文件流 数组流 过滤流 管道流 缓冲流 数据流 打印流 字串流 标准流

21 4.1 标准输入和输出 标准输入 / 输出是指键盘输入和屏幕输出 标准输入 / 输出包括以下三种 : System.in 标准输入流 ; 对应于键盘输入或者由主机环境或用户指定的另一个输入源, 属于 InputStream 类对象 ; System.out 标准输出流 ; 对应于显示器输出或者由主机环境或用户指定的另一个输出目标, 属于 OutputStream 类对象 ; System.err 标准错误输出流 ; 属于 PrintStream 对象, 用于系统错误信息的输出

22 标准输入 格式 : 读取单字节 : public int read( ) throws IOException 读取字节数组数据 : 注意 : 标准输出 read() 读取的是 int 类型 ; 使用 System.in.read() 要求 try-catch 语句处理异常, 否则编译程序会提示加以处理 ; 格式 : public int read(byte b[]) throws IOException 连续输出数据 :print() 方法

23 例程 按行输出数据 :println() 方法 必须抛出 IOException 一次读入多个字节, 并存放到数组 buff 中 标准出错 将一个字节型数组转换成字符串数组, 参数 0 表示将字符串数组中每个元素的高 8 位置为 0 System.err 采用 PrintStream 类的对象实现标准输出, 同样也有 print 和 println 两种方法, 作用是将标准 I/O 方法的错误显示在屏幕上

24 4.2 字节流 输入 / 输出类层次关系图

25 InputStream 类 基本概念 : 是以字节为单位的输入流, 该类是许多输入类的父类 是抽象类, 不能创建该类的实例 注意 : 大多数输入方法都抛出了 IOException 异常, 因此, 如果程序中调用了这些输入方法, 就必须捕获和处理 IOException 异常 主要方法 read 方法 : 用于从指定的输入流读取以字节为单位的数据, 第一次从流的开始位置读取, 以后每次从上次结束的部位开始读取, 自动实现位移 主要有以下三种 : public int read(byte buff[]) throws IOException 该方式可用于一次读取多个字节, 读入字节直接存入数组 buff 中, 并返回读取的字节数 ; 必须保证数组有足够的容量来保存要读入的数据, 否则会抛出 IOException 异常

26 public abstract int read() throws IOException 该方式每次从指定的输入流中读取一个字节数据, 然后以此数据作为低字节, 再配上全零字节构成 16 位整形数据返回给调用语句 ; 返回的值是 -1 时表示到达了流的末尾, 这也是为什么 read 方法读入字节却返回 int 值的原因 ; public int read(byte buff[],int start,int len) 该方式是从 start 起读取输入流数据并填充 len 个长度字节到 buff 数组中, 返回值为实际填充数, 若返回值小于 len 则表示已将指定流中的数据读完 ; 当将 start 设为 0,len 设为数组长度时, 可以用于防止数组越界 available 方法 : 返回当前流中可用字节数, 若输入流没有返回字节数, 则返回 0 格式如下 : public int available( ) throws IOException

27 close 方法 : 关闭当前流对象, 回收释放此连接所占用的资源 格式如下 : public void close( ) throws IOException 当不再使用流的时候要关闭它, 以免资源泄漏 skip 方法 : 跳过指定的字节数, 格式如下 : public long skip(long n) throws IOException 使在流中的当前位置后移 n 个字节, 如果 n 为负数, 则向前移 ; skip 方法返回实际移动的字节数, 若已到流尾, 返回的值小于 n 控制定位指针的方法 指针移动到流中标记的位置 : public Synchronized void reset( ) throws IOException 在指针当前位置做一个标记 : public Boolean mark( ) 返回一个表示流是否支持标记和复位操作的布尔值 : public Boolean marksupport( )

28 使用 InputStream 类的注意事项 当程序中调用 InputStream 进行请求, 所调用的方法就处在等待状态, 这种状态就是 堵塞 ; 等待用户输入, 直到用户输入一个回车键为止 InputStream 类操作的是字节数据, 不是字符 ;Java 中的 Unicode 字符集是 16 位数据, 用 InputStream 来接收键盘字符将收不到字符的高位信息 ; 流是通过 -1 来标记结束的, 即用整数作为返回的输入值才可以捕捉到流的结束 InputStream 类的子类 FileInputStream: 把一个文件作为字节输入流 ;

29 PipedInputStream: 用于从管道中读取数据, 具体体现在线程中 ; FilterInputStream: 建立一个输入过滤器 ; BufferedInputStream: 提供了内部缓冲操作, 使得实际数据可以按块读取 ; DataInputStream: 可读取由 Java 基本数据类型组成的流 ; LineNumberInputStream: 用于记录输入流中的行号 :»getlinenumber(): 获取当前行的行号 ;»setlinenumber(): 设置当前行的行号 ; PushbackInputStream: 可将一个字节送回到输入流中 ; SequenceInputStream: 把多个输入流顺序合并为一个输入流中 ; StringBufferInputStream: 把一个 String 对象作为输入流 ; ObjectInputStream: 将对象值及类的定义等从指定输入流读入以便重新对象化

30 OutputStream 类 基本概念 是以字节为单位的输出流, 该类是许多输出类的父类 是抽象类, 不能创建该类的实例 主要方法 write 方法 : 用于向指定的输出流写入以字节为单位的数据, 主要有以下三种 : public void write(byte buff[]) throws IOException 将指定 buff 数组中的数据输出到指定流中 ; public void write(byte buff[], int off, int len) throws IOException 将指定 buff 数组中的数据从 off 开始, 输出 len 长度的字节到指定流中 ; public abstract void write(int buff) throws IOException 将一个 int 值输出到指定流

31 flush 方法 : 清空流并强制缓冲区中的所有数据写入流中, 格式如下 : public void flush( ) throws IOException close 方法 : 关闭指定的输出流, 格式如下 : public void close( ) throws IOException OutputStream 的子类 FileOutputStream: 文件字节输出流 ; PipedOutputStream : 该类创建的对象称为一个输出管道 与 PipedInputStream 配合实现两个线程之间的通信, 定义格式如下 : FilterOutputStream: 该类用于创建一个输出过滤器 ; BufferedOutputStream: 为输出流做缓冲 ; DataOutputStream: 执行输入流中基本的 Java 数据类型的数据输出 ;

32 ByteArrayOutputStream: 将数据写入流的内部字节数组缓冲区, 执行时将一个输出流指向一个 Byte 数组 ; 构造方法如下 : 方法 :» 在内部创建一个长度为 32 的 Byte 数组 ; ByteArrayOutputStream();» 在内部创建一个大小为 n 的 Byte 数组 ; ByteArrayOutputStream(int n);» 继承自 OutputStream 类的方法, 如 write flush close 等 ;»tostring 方法 : 将内部的数组转化成字符串 ;»tobytearray 方法 : 返回对象内部的 Byte 数组 ;»writeto: 将内部 Byte 数组输出到指定的输出流 ;»reset: 将对象内部 Byte 数组的长度设为 0;»size: 返回 Byte 数组长度 ; ObjectOutputStream: 用于将原始数据类型以及整个对象写入到一个流中

33 字节流例程 import java.io.*; public class RWByteArray{ public static void main(string args[])throws IOException{ byte[] b1=new byte[]{'a','r','r','a','y','1'}; byte[] b2=new byte[64]; ByteArrayInputStream in=new ByteArrayInputStream(b1); ByteArrayOutputStream out=new ByteArrayOutputStream(); int c; while((c=in.read())!=-1){ 创建字节数组输入流 in, 创建字节数组输出流输出流 out out.write(c); } 使用 read 方法读取 in, 一次读取一个字节, 并写入到 out 中 b2=out.tobytearray(); if(in!=null)in.close(); if(out!=null)out.close(); 使用 tobytearray 方法将流转化为字节数组 for(int i=0;i<b2.length;i++){ System.out.print((char)b2[i]); 关闭 in 和 out } }

34 4.3 字符流 输入 / 输出类层次关系图 BufferedReader LineNumberReader CharArrayReader Reader FilterReader InputStreamReader PipedReader PushbackReader FileReader java.io.object StringReader Writer BufferedWriter CharArrayWriter FilterWriter OutputStreamWriter FileWriter PipedWriter PrintWriter StringWriter

35 Reader 类 Reader 类是处理所有字符输入流类的父类, 它也是抽象类 Reader 类的方法 read 方法 : 从输入流中读取字符流数据的方法, 有以下三种格式 : public int read( ) throws IOException 读取一个字符, 返回值为读取的字符 ; public int read(char cbuff[]) throws IOException 读取一系列字符到数组 cbuff 中, 返回值为实际读取的字符的数量 ; public abstract int read(char cbuff[], int off, int len) throws IOException 读取 len 个字符, 从数组 cbuff 的下标 off 处开始存放, 返回值为读取的字符数量, 该方法由子类实现 close 方法 : 关闭流, 格式如下 : public void close( ) throws IOException

36 控制定位指针的方法 指针移到流中标记的位置 : public Synchronized void reset( ) throws IOException 给当前流做标记, 最多支持 readaheadlimit 个字符的回溯 : public void mark(int readaheadlimit) throws IOException 返回一个表示流是否支持标记和复位操作的布尔值 : public Boolean marksupport( ) 跳过指定的字节数 : public long skip(long n) throws IOException Reader 的子类 FileReader: 用来创建一个可以读取文件内容的 Reader 类 ; 构造方法 : FileReader(String filepath) throws FileNotFoundException

37 FileReader(File fileobj) throws FileNotFoundException» 每个构造方法都能引发一个 FileNotFoundException 异常 ; FileReader 所有的实例方法都继承自 InputStreamReader 类 :»read 方法 : public int read( ) throws IOException public int read(char[] cbuff, int off, int len) throws IOException»close 方法»getEncoding 方法 : 获得文件流当前使用的编码机制, 返回值时代表编码名称的字符串 ; FilterReader: 过滤字符输入流的父类 ; BufferedReader: 可创建的对象称为指向 Reader 流缓冲输入流 ; CharArrayReader: 把字符数组作为源输入流来实现 ; 构造方法 : CharArrayReader(char array[]) CharArrayReader(char array[], int start, int len)

38 从 s 中拷贝字符到目的数组 buff 中 创建输入流 in 创建推回流 f 如果下一个字符是 =, 表明是条件判断 否则是赋值语句, 回推已经读取的字符

39 Writer 类 Writer 类是处理所有字符输出流类的父类, 它也是抽象类 Writer 类的方法 write 方法 : 向输出流写入字符, 格式如下 : public void write(int c) throws IOException 将整形值 c 的低 16 位写入输出流 ; public void write(char cbuff[]) throws IOException 将字符数组 cbuff 写入输出流 ; public abstract void write(char cbuff[], int off, int len) throws IOException 将字符数组 cbuff 中从索引为 off 的位置开始的 len 个字符写入输出流 ; public void write(string str) throws IOException 将字符串 str 写入输出流 ; public abstract void write(string str, int off, int len) throws IOException 将字符串 str 中从索引 off 开始的 len 个字符写入输出流

40 flush 方法 : 可刷新输出缓冲, 定制输出状态以使每个缓冲器都被清除, 格式如下 : abstract void flush( ) throws IOException close 方法 : 关闭输出流 public abstract void close( ) throws IOException Writer 类的子类 FileWriter: 用于创建一个可以写文件的 Writer 类 ; 构造方法 : FileWriter(String filepath); FileWriter(String filepath, boolean append); FileWriter(File fileobj);» 其中, 当 append 为 true 的时候, 输出附加到文件尾部 ;» 如果试图打开一个只读文件, 则将引发一个 IOException 异常 ;

41 FileWriter 类没有自己的实例方法, 都继承自 OutputStreamWriter:»write 方法 public void write(int c) throws IOException public void write(char cbuff[], int off, int len) throws IOException public void write(string str, int off, int len) throws IOException»close 方法 PipedWriter: 用于管道传送的字符输出流 ; 构造方法 :» 创建一个管道输出流, 使其连接到指定的管道输入流 snk 写入此流的数据字符稍后将用作 snk 的输入 : PipedWriter(PipedReader snk) throws IOException» 创建一个尚未连接到管道输入流的管道输出流 必须在使用之前将其连接到管道输入流 : PipedWriter( ) throws IOException

42 其他方法 : public void write(char cbuff[], int off, int len) throws IOException» 数组 cbuff 中从指定初始位置 off 开始的 len 个字符写入到管道输出流中, 如果某个线程正从连接的管道输入流读取数据字符, 但该线程不再处于活动状态, 则抛出 IOException 异常 ; public void flush( ) throws IOException» 刷新此输出流并强制写出所有缓冲的输出字符 这将通知所有的输入流告知它们管道中的字符处于等待中 ; public void close( ) throws IOException» 关闭流并释放相关资源 FilterWriter: 用于写入已过滤的字符流的抽象类 ; BufferedWriter: 将文本写入字符输出流, 可提供单字符 数组等的写入 ; CharArrayWriter: 实现以数组作为目标的输出流 ; 构造方法 :» 创建默认长度的缓冲器 : CharArrayWriter( )

43 » 创建长度为 numchars 的缓冲器 : CharArrayWriter(int numchars) 缓冲流 StringWriter: 用来完成字符串缓冲区的字符串输出 ; PrintWriter: 提供格式化的输出方法 print() 和 println() 提出 : 非缓冲 (unbuffered)i/o 中, 每个读取和写入请求都是由底层操作系统直接处理的, 这使得程序的效率非常低, 因为每个读写请求都会触发磁盘访问 网络活动或者其他一些代价相当高的操作 为了降低以上开销,Java 提供缓冲 (buffered)i/o 流 这是一种常见的性能优化方法, 可以从缓冲流中成批的读取 / 写入字符, 而不会每次都引起直接对数据源 / 数据目标的读 / 写操作

44 原理 : 缓冲输入流从一个内存区域 ( 称为缓冲区 ) 读取数据, 只当缓冲区为空时才调用本机 API; 缓冲输出流将数据写入缓冲区, 只能缓冲区为满时才调用本机 API 一般缓冲区的大小为内存页或磁盘块的整数倍 Java 中有四个用来包装缓冲流的类 BufferedInputStream BufferedOutputStream 以上两个是缓冲字节流 BufferedReader BufferedWriter 以上两个是缓冲字符流 通过将非缓冲流对象传递给缓冲流类的构造方法, 将非缓冲流 包装 成缓冲流

45 例程

46 5. 文件处理 File 类 File 类提供了描述文件和目录的一种方法, 专门用来管理磁盘文件和目录 目录可被视为一种特殊的文件 ; 文件是保存在磁盘等存储设备上的数据, 由记录组成, 文件的一行可看作是一条记录 ; 可以使用 File 类创建的对象来获取文件本身的一些信息 File 类在 java.io 包中, 但不是流 (InputStream 或 OutputStream) 的子类, 不负责数据的输入 / 输出 ; 文件对象并不涉及对文件的读写操作 ; 文件的读写要采取专门对文件操作的流, 并应该在合适的时候关闭流, 否则系统资源无法得到释放 File 类的方法

47 构造方法 public File(String pfname) pfname 指明了新建 File 对象所对应的磁盘文件或目录名及其路径名 ; 路径包括相对路径与绝对路径, 例如 : 通常为了保证程序的可移植性, 使用相对路径较好 public File(String dirpath, String filename) 参数 dirpath 表示对应文件或目录的路径名,fileName 是不带路径名的文件名, 例如 : public File(File f, String filename) f 是文件所在目录的文件对象,fileName 是不带路径名的文件名, 例如 :

48 成员方法 public String getname( ( ) 获取一个文件的文件名 public String getpath( ( ) 获取一个文件的路径名 public String getabsolutepath( ( ) 获取文件绝对路径 public String getparent( ( ) 返回文件的父目录 String renameto(file newname) public boolean exists( ) 重命名文件 判断文件是否存在 public boolean canwrite( ( ) 判断文件是否可写 public boolean canread( ( ) 判断文件是否可读 public boolean isfile( ( ) 判断对象是否为文件 public boolean isdirectory( ( ) 判断对象是否为目录 public long length( ) 返回文件长度 public long lastmodified( ( ) 返回文件最后修改日期 public boolean delete( ) 删除文件对象 public boolean mkdir( ( ) 根据当前对象创建目录 public String[ ] list( ) 列出当前目录下的文件 public File[ ] listfile( ( ) 返回目录中所有文件对象列表

49 静态方法 createtempfile 方法 : 使用唯一名称创建一个新文件, 并且返回引用这个文件的 File 对象 ; listroots 方法 : 返回文件系统根的名称清单 文件输入 / 输出 FileInputStream 类 把文件作为字节输入流, 实现对文件的读取操作 构造方法如下 : 用给定文件名创建一个 FileInputStream 对象 : public FileInputStream(String name) throws FileNotFoundException 用 File 对象创建 FileInputStream 对象 : public FileInputStream(File file) throws FileNotFoundException 输入流通过使用 read 方法读出数据

50 FileOutputStream 类 把文件作为字节输出流, 实现对文件的写入操作 构造方法如下 : 用给定文件名创建一个 FileOutputStream 对象 : public FileOutputStream(String name) throws FileNotFoundException 用 File 对象创建 FileOutputStream 对象 : public FileOutputStream(File file) throws FileNotFoundException 输出流通过 write 方法把数据写入输出流目的地 FileOutputStream 流顺序的写入文件, 只要不关闭流, 每次调用 write 方法就顺序的向文件写入内容, 直到流被关闭 ; 如果输出流要写入数据的文件已经存在, 该文件内容就会刷新 ; 如果文件不存在, 就会创建新的文件 以上两类提供的一些方法 available 方法 返回可以不受阻塞地从此文件输入流中读取的字节数

51 close 方法 finalize 方法 确保在不再引用文件输入流时调用其 close 方法 skip 方法 从输入流中跳过并丢弃 n 个字节的数据 read 方法 int read( ) 从此输入流中读取一个数据字节 int read(byte[] b) 从此输入流中将最多 b.length 个字节的数据读入一个字节数组中 int read(byte[] b, int off, int len) 从此输入流中将最多 len 个字节的数据读入一个字节数组中 write 方法 void write(byte[] b) 将 b.length 个字节从指定字节数组写入此文件输出流中

52 void write(byte[] b, int off, int len) 将指定字节数组中从偏移量 off 开始的 len 个字节写入此文件输出流 void write(int b) 将指定字节写入此文件输出流

53 FileReader 类和 FileWriter 类 分别派生于字符流中的 Reader 类和 Writer 类, 与字节流的 FileInputStream 和 FileOutputStream 对应, 用于文件的 I/O 操作 提供的方法 close 方法 getencoding 方法 返回此流使用的字符编码的名称 ready 方法 告知是否准备读取此流 flush 方法 read 方法 读取单个字符或读取多个字符到数组中 write 方法 写入单个字符或写入字符数组的某一部分, 或写入某字符串的一部分

54 以上两个范例中都采用 int 变量读取和写入, 不同的是, 前者 int 变量在其最后 8 位中保存一个字节值, 后者 int 变量在其最后 16 位中保留一个字符值

55

56

57 文件操作例程 将文件 1 的内容复制到文件 2 中

58 获取目录及文件信息 SimpleDateFormat 是一个以国别敏感的方式格式化和分析日期类数据的具体类 它允许格式化 语法分析和标准化 format 方法将获取到的文件最后修改时间以格式 sdf 的方式表示 当参数 f1 为文件类型, 则打印 <FILE> 标签和文件的具体信息, 如路径 大小 日期等 ; 当参数 f1 不是文件类型, 则打印 f1 目录信息, 并通过 listfiles 方法深入获取目录下的文件信息 再通过递归调用方法层层深入, 打印出该目录下所有的子目录 文件信息

59 创建目录和文件 根据参数创建文件对象 f1 和文件对象 child 当 child 不存在时创建子目录 在子目录中创建文件 f2 如果 f2 不存在或存在但日期比 f1 早时进行更新

60 主程序

61 文件过滤器 FileFilter 和 FilenameFilter Java 提供了文件过滤器 ( 包括 FileFilter 和 FilenameFilter 两个接口 ) 用来对文件名字符串进行筛选, 以便获得满足需求特征的文件集合 以上两个接口都包含 accept 方法, 但方法的参数不同 : 文件过滤器可以作为 File 类的列表方法的参数, 用于获得符合过滤要求的文件列表 :

62 public String[] list(filenamefilter filter) public File[] listfiles(filenamefilter filter) public File[] listfiles(filefilter filter) FilterInputStream 和 FilterOutputStream 在读写数据的同时可以对数据进行特殊处理 ; 要使用过滤流, 必须把它连接到某个输入 / 输出流上 ; 通常在构造方法的参数中指定所要连接的流 : FilterInputStream(InputStream in); FilterOutputStream(OutputStream out); 重写了父类 InputStream 和 OutputStream 的方法 ; 提供了同步机制, 使得某一时刻只有一个线程可以访问一个输入 / 输出流

63 例程 : 列出当前目录中带过滤器的文件名清单 分析过滤器 : 变为全小写 如果过滤器含有通配符 *, 则获取 * 以前的字符 得到文件后缀名 判断文件是否满足过滤条件 ( 即实现 FilenameFilter 中的 accept 方法 ) 是否以 prefix 开头并且以 suffix 结尾

64 列出清单 : 创建过滤器对象 text*.java 获得当前目录 在当前目录中筛选满足过滤器的文件, 返回到数组 str[] 中 在 list 方法的实现中, 会自动根据 accept 方法的返回值决定是否将文件名加入到 str[] 中

65 随机文件操作 Java 中 RandomAccessFile 提供了随机访问文件的方法, 允许对文件内容进行随机读写 RandomAccessFile 允许对文件内容同时完成读和写操作, 直接继承自 Object, 且同时实现了接口 DataInput 和 DataOutput 构造方法 : public class RandomAccessFile(File file,string mode) public class RandomAccessFile(String name,string mode) 其中 mode 的取值分别代表以下属性 : r: 只读, 任何写操作都会抛出 IOException; rw: 读写, 文件不存在时会创建该文件, 文件存在时原文件内容不变 ; rws: 同步读写, 等同于读写, 但任何 rwd: 数据同步读写操作

66 其他方法 : readint: 读一个整型值 ; skipbytes: 将指针向下移动若干字节 ; length: 返回文件长度 ; getfilepointer: 返回指针当前位置 ; seek: 将指针调到所需位置 ; setlength: 设定文件长度 随机读取的应用 以某 ZIP 文件为例 :ZIP 档案包含压缩文件, 尾部包含一个目录项, 用于指出 ZIP 档案中包含的各个文件从何处开始 :

67 如果要提取某个文件, 若使用顺序访问流, 则必须经过以下步骤 : 打开 ZIP 档案 搜索 ZIP 档案, 直到找到要提取的文件 提取文件 关闭 ZIP 档案 在以上过程中, 搜索算法平均要读过 ZIP 档案的一半才能找到要提取的文件 如果使用随机访问文件, 则可以效率更高 : 打开 ZIP 档案 搜索 ZIP 档案目录项, 找到要提取的文件的入口位置 定位至该位置并提取文件 关闭 ZIP 档案

68 7. 扫描和格式化 扫描 Scanner Java 平台提供的把输入分割为和数据位相关联的记号的 API 把输入分割为记号 默认情况下,Scanner 使用空白分隔记号

69 当 Scanner 对象的工作完成时, 也要调用 Scanner 的 close 方法 尽管扫描器不是一个流, 但是需要关闭它表示完成了对其底层流的处理 转换各个记号 Scanner 还支持所有原始类型 (char 除外 ) 的记号 ; 数字值可以使用千位分隔符, 如果地区为 US 时,Scanner 可以正确的读取表示整数值的字符串 32,757 需要注意的是因为千位分隔符和小数点符号是地区特定的, 当没有指明 Scanner 应该使用的地区时, 可能无法得到正确的结果 例程 : 从文件中读取数据并相加, 得出结果

70 指明 Scanner 应用的地区 while 循环内的语句对文件内容自动分割, 并转换记号 ( 如千位分隔符 小数点 ) 格式化 实现格式化的流对象是 PrintWriter 或 PrintStream 的实例

71 print 和 println 方法 按照标准方式格式化单个值 format 方法 根据格式字符串 (format string) 格式化多个实参 格式字符串由嵌入了格式说明符 (format specifier) 的静态文本构成 ; d: 把整数值格式化为小数值 f: 把浮点值格式化为小数值 n: 输出平台特定的行终止符 所有的格式说明符都以 % 开头, 以一个或两个字符转换结束, 指定生成的格式化输出的种类

72 还有一些其他的转换, 如 :»x: 把整数格式化为 16 进制值 ;»s: 把任何值格式化为字符串 ;»tb: 把整数格式化为地区特定的月份名称» 除了 %% 和 %n 之外, 所有格式说明符都必须和一个参数匹配, 否则将抛出异常 利用附加元素进一步定制格式化输出

73 说明 精度 (Precision): 用于浮点值, 是格式化值的数学精度 对于 s 和其他一般转换, 它是格式化值的最大宽度 ; 如果必要, 对值进行右侧截断 ; 宽度 (Width): 格式化值的最小宽度 ; 如果必要, 就对值进行填补 ; 标志 (Flags): 指定附加的格式化选项» + 标志指定总是把数字格式化为带有符号, 0 标志指定填补字符为 0, - 标志表示填补到右侧 ( 默认是左侧 ),, 表示使用千位分隔符等等 实参索引 (Argument Idex): 允许明确的匹配指定的实参, 也可以使用 < 匹配和前一个说明符相同的实参

74 6. 输入 / 输出流的简要总结 输入 InputStream Read 输出 OutputStream Write read 方法 write 方法 close 方法 flush 方法 reset 方法 skip 方法 mark 方法 marksupport 方法 其它方法

75 输入 InputStream Reader BufferedInputStream BufferedReader FileInputStream FileReader PipedInputStream PipedReader ByteArrayInputStream CharArrayReader FilterInputStream FilterReader

76 输出 OutputStream Writer BufferedOutputStream BufferedWriter FileOutputStream FileWriter PipedOutputStream PipedWriter ByteArrayOutputStream CharArrayWriter FilterOutputStream FilterWriter

77 回顾两段程序 : 如 xanadu.txt 这样的文件以及更加复杂的数据类型的流, 如在读写中涉及字符数据, 最好的途径是使用字符流 字节流只应该用于最原始的 I/O

78 面向行的字符 I/O 通常出现在单位大于单一字符的情况下, 一个常见的单位就是行 行终止符可以是回车 / 换行序列 \r\n, 单一回车 \r, 单一换行 \n, 通过支持所有可能的行终止符, 使程序可以读取在任何广泛使用的操作系统上创建的文本文件 使用面向行的 I/O 需要使用 BufferedCharacters 和 PrintWriter 两个类 readline 返回一行文本, 其中的行终止符被删除 println 输出每行文本, 并在行尾附加当前操作系统使用的行终止符

79 数据流 数据流支持基本数据类型值和 String 值的二进制 I/O 所有数据流实现 DataInput 接口或 DataOutput 接口 DataInputStream 和 DataOutputStream 是以上两个接口的使用最广泛的实现, 它们只能被创建为现有字节流对象的包装器 例程 : 通过数据流方式将一组数据写入到文件中, 再从文件中读出数据 数据定义 :

80 打开一个输出流并写出数据记录 DataOutputStream 只能被创建为现有字节流对象的包装器, 因此本程序中先建立 FileOutputStream 对象, 再使用 DataOutputStream 进行 包装 ; writedouble: 写入双精度浮点数 ; writeint: 写入整型 ; writeutf: 按照 UTF-8 的一种修订形式写出 String 值, 这是一种宽度可变的字符编码, 对于常用的西方字符, 只需要一个字节

81 打开一个输入流读入数据 :

82 注意 : 数据流通过捕获 EOFException 异常检测文件结束条件, 而不是通过检查返回值是否为 -1 来判断 数据流中每个专门的 write 都严格的与专门的 read 相匹配, 由程序员确保输出类型和输入类型按照这种方式匹配 输入流由简单的二进制数据构成, 没有办法表明各个值的类型或者它们从什么地方开始 在上述的程序中使用浮点数表示货币值, 但是总的来说, 浮点数并不适用于精确值, 对于十进制小数尤其不适合 例如 :0.1 怎样用二进制精确的表示? 用于货币值的正确类型是 java.math.bigdecimal, 但它是对象类型, 无法处理数据流, 这时就需要引入对象流的概念 对象流 对象流支持对象的 I/O

83 对象流类是 ObjectInputStream 和 ObjectOutputStream, 它们实现 ObjectInput 和 ObjectOutput 接口 ( 分别继承自 DataInput 接口或 DataOutput 接口 ) 上面的程序实例改写为 : 修改数据

84 输入和输出的改动 : 同理, 打开输入流读取数据时, 将获取 price 的语句改为 : 如果 readobject 没有返回预期的对象类型, 试图把它转换为正确类型可能会抛出 ClassNotFoundException

85 java.nio.*.* 以上讨论的都是 java.io 包中以及 java.lang 包中设计的输入 / 输出 通过简单且容易使用的 API, 来实现基本 I/O 服务 : 数据流 随机访问文件 字符转换 缓冲 java.nio 包中提供了比 java.io 包更灵活的 API, 用于可伸缩的 I/O 快速缓冲字节与字符 I/O 以及字符集转换等功能

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj Message Transition 5-1 5-2 DataInputStream Class 5-3 DataOutputStream Class 5-4 PrintStream Class 5-5 (Message Transition) (Exercises) Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream

More information

while ((ch = fr.read())!= -1) { System.out.print((char) ch); fr.close(); 例 3: 用 BufferedReader 读 TXT 文件 public class FileReaderDemo3 { public static v

while ((ch = fr.read())!= -1) { System.out.print((char) ch); fr.close(); 例 3: 用 BufferedReader 读 TXT 文件 public class FileReaderDemo3 { public static v 第九章 Java I/O 流操作 实验目的 (1) 掌握文本文件的读写方法 (2) 掌握 InputStream OutputStream 的使用方法 (3) 熟悉 FileReader,BufferedReader,InputStreamReader 和 FileWriter, BufferedWriter, PrintWriter 的使用方法 ; 理解使用过滤流实现数据项的读写 :DataOutputStream,

More information

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点

OOP with Java 通知 Project 6: 5 月 30 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 5 月 30 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

OOP with Java 通知 Project 6: 6 月 6 日晚 9 点

OOP with Java 通知 Project 6: 6 月 6 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 6 月 6 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

untitled

untitled Velocity 14 100061 315@pptph.com.cn http://www.pptph.com.cn 010-67129212 010-67129211 787 1092 1/16 22 535 1 0 000 2001 11 1 2001 11 1 ISBN 7-115-09828-X/TP 2577 32.00 01067129223 1 2 1 2 3 4 5 1 Velocity

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

OOP with Java 通知 Project 6: 5 月 24 日晚 9 点

OOP with Java 通知 Project 6: 5 月 24 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 6: 5 月 24 日晚 9 点 复习 异常处理 语法 抛出异常 : throw 处理异常 : try, catch 异常对象 : Exception 类的子类 从方法中抛出异常 方法的异常说明 :throws 中断当前方法的执行, 返回抛出的异常对象, 在该方法的调用路径上寻找合适的

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY

More information

Microsoft Word - 投影片ch14

Microsoft Word - 投影片ch14 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第十四章檔案處理 本章學習目標認識串流學習檔案的開啟與關閉學習如何處理文字檔學習如何處理二進位檔 檔案處理 14-2 14.1 關於串流 串流可分為 輸入串流 (input stream) 與 輸出串流 (output stream) 兩種 下圖說明了串流如何做為檔案處理的橋樑 : stream 資料 input stream

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23

目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23 Java 程 序 设 计 实 验 指 导 书 商 丘 学 院 计 算 机 科 学 与 技 术 学 院 张 艳 晓 目 录 实 验 一 : 熟 悉 Java 开 发 环 境... 1 实 验 二 : 类 与 面 向 对 象... 7 实 验 三 : 继 承 和 多 态... 13 实 验 四 : 异 常 处 理... 18 实 验 五 : 流 文 件 及 基 于 文 本 的 应 用... 23 实 验

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

Microsoft PowerPoint - CPP-Ch Print.ppt [兼容模式]

Microsoft PowerPoint - CPP-Ch Print.ppt [兼容模式] Chapter 17 File Processing http://jssec.seu.edu.cn 杨明 yangming2002@seu.edu.cn OBJECTIVES To create, read, write and update files. Sequential file processing. Random-access file processing. To use high-performance

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

文件

文件 CH10 文件 1 文件的概念 一 文件分类 二 文件的组织结构 : ASCII 码文件 ( 文本文件 ) 二进制文件 文件是二进制代码的, 则文件就是字节流 文件是 ASCII 码的, 则文件就是字符流, 也是字节流 1 如 : 对于整型变量 x, 其值为 32767 若以文本方式存放, 则共有 5 个字符, 内容为 : 00110011 00110010 00110111 00110110 00110111

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 Java 高级技术 课程 Java 语言的高级特性 李戈 北京大学信息科学技术学院软件研究所 2009 年 4 月 11 日 输入 / 输出流 输入 / 输出流 为输入 / 输出数据,Java 程序与数据的发送者或接收者要建立一个数据通道, 这个通道被抽象为流 (stream); Java 语言本身不包含输入 / 输出语句, 而是通过 Java API 提供的程序包 java.io 完成的 ; 输入

More information

Microsoft PowerPoint - ch7_1 DA class

Microsoft PowerPoint - ch7_1 DA class Quiz 1. Describe the similarities and differences of Tester class and GUI class 2. What is the function of GUI class? 3. What is the function of PD(problem domain) class? 4. How does a GUI class interact

More information

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票 复习 创建对象 构造函数 函数重载 : 函数 = 函数名 + 参数列表 public class MyType { int i; double d; char c; void set(double x)

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

Microsoft Word - sy09_实验09_字符串和文本IO.docx

Microsoft Word - sy09_实验09_字符串和文本IO.docx 面向对象程序设计 (Java) 课程实验 第 9 章字符串和文本 I/O 9.1 找出回文串检测一个字符串是否是回文串 : 从前向后和从后向前读都是同一个字符串的字符串 public class CheckPalindrome { // Create a Scanner Scanner input = new Scanner(System.in); // Prompt the user to enter

More information

2009年9月全国计算机等级考试二级Java真题及答案

2009年9月全国计算机等级考试二级Java真题及答案 2009 年 9 月 全 国 计 算 机 等 级 考 试 二 级 Java 真 题 及 答 案 [ 录 入 者 :NCRE100 时 间 :2009-10-08 19:41:34 作 者 : 来 源 :NCRE100.com 浏 览 :1421 次 ] 2009 年 9 月 全 国 计 算 机 等 级 考 试 二 级 笔 试 试 卷 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟,

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

Spark读取Hbase中的数据

Spark读取Hbase中的数据 Spark 读取 Hbase 中的数据 Spark 和 Flume-ng 整合, 可以参见本博客 : Spark 和 Flume-ng 整合 使用 Spark 读取 HBase 中的数据 如果想及时了解 Spark Hadoop 或者 Hbase 相关的文章, 欢迎关注微信公共帐号 :iteblog_hadoop 大家可能都知道很熟悉 Spark 的两种常见的数据读取方式 ( 存放到 RDD 中 ):(1)

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Fortran Algol Pascal Modula-2 BCPL C Simula SmallTalk C++ Ada Java C# C Fortran 5.1 message A B 5.2 1 class Vehicle subclass Car object mycar public class Vehicle extends Object{ public int WheelNum

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt Java 程式設計基礎班 (6) 莊坤達台大電信所網路資料庫研究室 Email: doug@arbor.ee.ntu.edu.tw Class 6 1 回顧 Java Inner class Class/Object 基本使用方法 Class 6 2 Java Utilities 字元與字串 (String) StringBuffer Class 6 3 String 類別 java.lang.string

More information

利用Java技术编写桌面软件基础

利用Java技术编写桌面软件基础 利 用 Java 技 术 编 写 桌 面 软 件 基 础 在 学 习 Java 编 程 语 言 的 细 节 和 语 法 时, 我 们 会 碰 到 这 样 一 个 问 题 : 开 发 桌 面 应 用 软 件 需 要 使 用 哪 些 Java 技 术, 应 当 引 入 哪 些 package? 这 一 问 题 的 答 案 取 决 于 开 发 的 应 用 软 件 类 型 和 它 的 作 用 这 篇 文 章

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

Microsoft PowerPoint - course6.ppt

Microsoft PowerPoint - course6.ppt 回顧 Java 程式設計基礎班 (6) Java Inner class Class/Object 基本使用方法 劉根豪台大電機所網路資料庫研究室 Email: kenliu@arbor.ee.ntu.edu.tw 1 2 Java Utilities String 類別 字元與字串 (String) StringBuffer java.lang.string Java 中的字串不像 char int

More information

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课 复习 Java 包 创建包 : package 语句, 包结构与目录结构一致 使用包 : import restaurant/ - people/ - Cook.class - Waiter.class - tools/ - Fork.class

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 2 章 Java 语言基础 通过本章的实践, 要掌握 Java 中的标识符 关键字 常量, 熟练掌握算术 关 系 逻辑 条件 赋值 位运算符的使用, 掌握简单顺序结构的程序设计 2.1 典型习题解答 2.1 Java 中怎样进行注释? 解答 Java 语言中的注释有 3 种形式 : (1) 单行 : // (2) 多行 : /* */ (3) 文档注释 : /** */ 第三种形式是第二种形式的变形,

More information

第十一章 流类库与输入/输出

第十一章 流类库与输入/输出 第十一章流类库与输入 / 输出 本章主要内容 I/O 流的概念 输出流 输入流 输入 / 输出流 2 I/O 流的概念 当程序与外界环境进行信息交换时, 存在着两个对象, 一个是程序中的对象, 另一个是文件对象 流是一种抽象, 它负责在数据的生产者和数据的消费者之间建立联系, 并管理数据的流动 程序建立一个流对象, 并指定这个流对象与某个文件对象建立连接, 程序操作流对象, 流对象通过文件系统对所连接的文件对象产生作用

More information

第3章 Java语言基础

第3章 Java语言基础 第 3 章 Java 语言基础 第 1/55 页 习题 3 3. 8. 9. 13. 18. 实验 : 1. 实验 4( 实 P11~12) 2. 实验任务 : 1 例 3.1( 教 P30) 2 变量赋值 ( 教 P29) 3 编写两个缓冲区对应同一个输入流对象, 并键盘输入整型 a 和双精度 b, 求和 第 2/55 页 习题 3 3. 实验任务 : 1 实验 5( 实 P12~13) 2 实验

More information

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6 www.brainysoft.net 1.JasperReport ireport...4 1.1 JasperReport...4 1.2 ireport...4 2....4 2.1 JDK...4 2.1.1 JDK...4 2.1.2 JDK...5 2.1.3 JDK...5 2.2 ant...6 2.2.1 ant...6 2.2.2 ant...6 2.3 JasperReport...7

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

试卷代号 : 座位号 中央广播电视大学 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共

试卷代号 : 座位号 中央广播电视大学 学年度第一学期  开放本科  期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 试卷代号 : 1 2 9 7 座位号 中央广播电视大学 2 0 1 0 2011 学年度第一学期 " 开放本科 " 期末考试 面向对象程序设计 ( 本 ) 试题 2011 年 1 月 题号 一 一 一四总分 一 分数 得分 评卷人 - 单选题, 在括号内填写正确的选项编号 { 每小题 2 分, 共 2 0 分 } 1. Java 是一门 ( ) 语言 A. 机器 B. 汇编 C. 面向过程的高级 D.

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

暨南大学本科实验报告专用纸

暨南大学本科实验报告专用纸 暨南大学本科实验报告专用纸 课程名称 程序设计基础 成绩评定 实验项目名称 JDK 和 JAVA 语言基础指导教师 实验项目编号实验一 实验项目类型 实验地点 学生姓名 学号 学院 系 专业 实验时间 年月日 午 ~ 月日 午温度 湿度 一 实验目的 1. 掌握 JDK 的安装 环境配置以及一些简单的编译与执行命令 2. 熟悉 JAVA 集成开发环境 Eclipse 3. 理解常量 变量 基础数据类型,

More information

Android 开发教程

Android 开发教程 封面 1 文件存取编程基础 文件 文件可以用来存储比使用引用更大数量的数据 Android 提供方法来读 写文件 只有本地文件可以被访问 优点 : 可以存储大容量的数据 缺点 : 文件更新或是格式改变可能会导致巨大的编程工作 文件操作 读文件 Context.openFileInput(String name) 打开一个与应用程序联系的私有文件输入流 当文件不存在时抛出 FileNotFoundException

More information

HttpServletResponse:servlet中的http响应对象

HttpServletResponse:servlet中的http响应对象 ****************************jsp/servlet*************************************** HttpServletResponse:servlet 中 的 http 响 应 对 象 类 HttpServletRequest:servlet 中 的 http 请 求 对 象 类 ServletContext:servlet 中 的 容

More information

附錄C.doc

附錄C.doc C C C-1 C -2 C -3 C -4 C -5 / C -6 2 C/C++ C-1 FILE* fopen(const char* filename, const char* mode) filename NULL FILE* freopen(const

More information

《面向对象程序设计A》课程教学大纲Ⅱ4

《面向对象程序设计A》课程教学大纲Ⅱ4 Java 程 序 设 计 课 程 教 学 大 纲 Ⅱ5 课 程 代 码 : 课 程 名 称 :Java 程 序 设 计 Java Programming 学 分 :5 总 学 时 :80 ( 其 中 : 理 论 学 时 :48 实 验 ( 上 机 ) 学 时 :32) 先 修 课 程 : 2106010190 大 学 计 算 机 信 息 技 术 基 础 适 用 对 象 : 本 二 工 科 非 计 算

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 310-055Big5 Title : Sun Certified Programmer for the Java 2 Platform.SE 5.0 Version : Demo 1 / 22 1. 11. public static void parse(string str)

More information

Chapter 9: Objects and Classes

Chapter 9: Objects and Classes Java application Java main applet Web applet Runnable Thread CPU Thread 1 Thread 2 Thread 3 CUP Thread 1 Thread 2 Thread 3 ,,. (new) Thread (runnable) start( ) CPU (running) run ( ) blocked CPU sleep(

More information

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1

C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 C++ 程序设计 OJ9 - 参考答案 MASTER 2019 年 6 月 7 日 1 1 CARDGAME 1 CardGame 题目描述 桌上有一叠牌, 从第一张牌 ( 即位于顶面的牌 ) 开始从上往下依次编号为 1~n 当至少还剩两张牌时进行以下操作 : 把第一张牌扔掉, 然后把新的第一张放到整叠牌的最后 请模拟这个过程, 依次输出每次扔掉的牌以及最后剩下的牌的编号 输入 输入正整数 n(n

More information

x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解

x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解 Java R Python Java Java Java x MapReduce A Italic URL Constant width Constant width bold Constant width italic 這個圖示代表提示或建議 這個圖示代表一般註解 第一章 I/O double[][] int[] String[] List 2 Map JavaScript Object Notation

More information

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6: Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed

More information

第1章

第1章 第 12 章 資料檔案管理 1 本章提要 12.1 前言 12.2 資料讀取 Reader/InputStream 12.2.1. Reader/InputStream 12.2.2. System 類別 12.3 資料建檔 Writer/OutputStream 12.4 資料修改 RandomAccessFile 12.5 變更及移動檔案 12.6 檔案列表 12.7 後記 2 12.1 前言

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i;

More information

// 获取并集 // set1.addall(set2); // 获取交集 set1.retainall(set2); // 打印操作结果 set1.foreach(o -> System.out.println(o)); 运行结果如图 6-1 所示 图 6-1 运行结果 三 案例总结 1 Coll

// 获取并集 // set1.addall(set2); // 获取交集 set1.retainall(set2); // 打印操作结果 set1.foreach(o -> System.out.println(o)); 运行结果如图 6-1 所示 图 6-1 运行结果 三 案例总结 1 Coll 第 6 章集合 案例 6-1 Collection 单列集合的操作 一 案例描述 1 考核知识点编号 :063006002~063006008 063006018 名称 :Collection 单列集合 Arrays 工具类 2 练习目标 掌握 Collection 单列集合方法的使用 3 需求分析 Collection 是所有单列集合的根接口, 在 Collection 中定义了单列集合 (List

More information

通过Hive将数据写入到ElasticSearch

通过Hive将数据写入到ElasticSearch 我在 使用 Hive 读取 ElasticSearch 中的数据 文章中介绍了如何使用 Hive 读取 ElasticSearch 中的数据, 本文将接着上文继续介绍如何使用 Hive 将数据写入到 ElasticSearch 中 在使用前同样需要加入 elasticsearch-hadoop-2.3.4.jar 依赖, 具体请参见前文介绍 我们先在 Hive 里面建个名为 iteblog 的表,

More information

Microsoft Word - JAVA Programming Language Homework VI_ans.doc

Microsoft Word - JAVA Programming Language Homework VI_ans.doc JAVA Programming Language Homework VI: Threads & I/O ID: Name: 1. When comparing java.io.bufferedwriter to java.io.filewriter, which capability exists as a method in only one of the two? A. Closing the

More information

D C 93 2

D C 93 2 D9223468 3C 93 2 Java Java -- Java UML Java API UML MVC Eclipse API JavadocUML Omendo PSPPersonal Software Programming [6] 56 8 2587 56% Java 1 epaper(2005 ) Java C C (function) C (reusability) eat(chess1,

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 JAVA 程 序 设 计 ( 肆 ) 徐 东 / 数 学 系 使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款 使 用 Java class 代 表 保 险 箱 public class SaveBox 类 名 类 类 体 实 现 封 装 性 使 用 class SaveBox 代 表 保

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 -> 目录 1 大概思路... 1 2 创建 WebAPI... 1 3 创建 CrossMainController 并编写... 1 4 Nuget 安装 microsoft.aspnet.webapi.cors... 4 5 跨域设置路由... 4 6 编写 Jquery EasyUI 界面... 5 7 运行效果... 7 8 总结... 7 1 1 大概思路 创建 WebAPI 创建 CrossMainController

More information

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How

More information

拦截器(Interceptor)的学习

拦截器(Interceptor)的学习 二 拦截器 (Interceptor) 的学习 拦截器可以监听程序的一个或所有方法 拦截器对方法调用流提供了细粒度控制 可以在无状态会话 bean 有状态会话 bean 和消息驱动 bean 上使用它们 拦截器可以是同一 bean 类中的方法或是一个外部类 下面介绍如何在 Session Bean 类中使用外部拦截器类 @Interceptors 注释指定一个或多个在外部类中定义的拦截器 下面拦截器

More information

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

Microsoft PowerPoint - course2.ppt

Microsoft PowerPoint - course2.ppt Java 程 式 設 計 基 礎 班 (2) 莊 坤 達 台 大 電 信 所 網 路 資 料 庫 研 究 室 Email: doug@arbor.ee.ntu.edu.tw Class 2 1 回 顧 Eclipse 使 用 入 門 Class 2 2 Lesson 2 Java 程 式 語 言 介 紹 Class 2 3 Java 基 本 知 識 介 紹 大 小 寫 有 差 (Case Sensitive)

More information

Microsoft Word - ch04三校.doc

Microsoft Word - ch04三校.doc 4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2 4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3 changegear

More information

Swing-02.pdf

Swing-02.pdf 2 J B u t t o n J T e x t F i e l d J L i s t B u t t o n T e x t F i e l d L i s t J F r a m e 21 2 2 Swing C a n v a s C o m p o n e n t J B u t t o n AWT // ToolbarFrame1.java // java.awt.button //

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

处理基本数据类型 Buffer 内幕 内存映像文件 性能 文件锁闭 压缩 生成 GZIP 压缩文件 对象串行化 恢复对象 正则表达式 生成正则表达式... 41

处理基本数据类型 Buffer 内幕 内存映像文件 性能 文件锁闭 压缩 生成 GZIP 压缩文件 对象串行化 恢复对象 正则表达式 生成正则表达式... 41 第十三讲 Java I/O 系统 他应该瞪大眼睛盯着诺亚, 好好学习一下, 看他们是怎样把那么多东西装到一个小小的方舟上的 西德尼 十三 Java I/O 系统 第十三讲 Java I/O 系统... 1 1. 类 File... 3 列出文件夹的文件清单... 3 检查文件夹, 生成文件夹... 4 2. 输入输出... 6 InputStream 的类别...6 OutputStream 的类别...

More information

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第 13 章外存中数据的组织 文件 本章的基本内容是 : 概述 文件的打开与关闭 文件的读写操作 任务 13.1 统计入学成绩 ( 文件版 ) 问题 某大学的博士入学考试科目为外语和两门专业课, 对于每个考生, 输入各科考试成绩并计算总分 要求用文件实现 想法 已经录入的成绩信息应该用文件保存下来, 已经计算的总分也应该保存到文件中, 并已追加方式继续录入 算法 文件 student.txt 存放学生的成绩信息,

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac)

OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 21 日晚 9 点 作业提交格式 学习使用 文本编辑器 cmd, PowerShell (Windows), terminal(linux, Mac) 复习 面向对象编程 将实际问题分解成不同的对象 不的对象提供不同的服务 对象之间可以传递消息 例子小李深夜

More information

使用MapReduce读取XML文件

使用MapReduce读取XML文件 使用 MapReduce 读取 XML 文件 XML( 可扩展标记语言, 英语 :extensible Markup Language, 简称 : XML) 是一种标记语言, 也是行业标准数据交换交换格式, 它很适合在系统之间进行数据存储和交换 ( 话说 Hadoop H ive 等的配置文件就是 XML 格式的 ) 本文将介绍如何使用 MapReduce 来读取 XML 文件 但是 Had oop

More information

untitled

untitled 1 Outline ArrayList 類 列類 串類 類 類 例 理 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object

More information

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt 2004 Marty Hall servlet 基础 JSP, Servlet, & Struts Training Courses: http://courses.coreservlets.com Available in US, China, Taiwan, HK, and Worldwide 2 JSP and Servlet Books from Sun Press: http://www.coreservlets.com

More information

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B 25 9 2008 9 M ICROEL ECTRON ICS & COMPU TER Vol. 25 No. 9 September 2008 J ava 1,2, 1,2, 1,2 (1, 330022 ; 2, 330022) :,. Apla - Java,,.. : PAR ;Apla - Java ; ;CMP ; : TP311 : A : 1000-7180 (2008) 09-0018

More information

JAVA String常用APi

JAVA String常用APi JAVA String 常 用API 2015 年 5 月13 日 星 期 三 ------------------------------------------ String 类 的 特 点 : 字 符 串 对 象 一 旦 被 初 始 化 就 不 会 被 改 变 abc 存 储 在 字 符 串 常 量 池 中 Java 的 核 心 类 包 是 java.lang eclipse:ctrl+ 方

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

01

01 ZEBRA 技术白皮书 条码编码 101 相关知识介绍 引言 20 70 数据 80 20 90 (JIT) AIAG EIA HIBCC HAZMAT 条码的优势提高数据准确性 99% 85% / / 提升效率 / 2 Zebra Technologies 保持一致性 ID 改进库存和资产管理 成本 / 效益分析 ID ID ID (ERP) RFID Zebra Technologies 3 ID

More information

授课内容 内容 备注 第 4 章接口 内部类和 Java API 基础内容和要求 : 1. 理解接口的作用, 理解接口和实现接口的类的关系, 掌握声明接口 重点 : 接口和实现接口的一个类实现多个接口的声明和使用方法 类 ;Java API 2. 理解内嵌类型的概念, 掌握声明内部类的方法 难点 :

授课内容 内容 备注 第 4 章接口 内部类和 Java API 基础内容和要求 : 1. 理解接口的作用, 理解接口和实现接口的类的关系, 掌握声明接口 重点 : 接口和实现接口的一个类实现多个接口的声明和使用方法 类 ;Java API 2. 理解内嵌类型的概念, 掌握声明内部类的方法 难点 : 金陵科技学院教案 第 7 次课授课学时 2 教案完成时间 : 2014.2 章 节 第四章接口 内部类和 Java API 基础 4-1 接口与实现接口的类 4-2 内部类和内部接口 4-3 Java API 基础 4-4 泛型 ( 简单介绍, 不深入学习 ) 1. 接口与实现接口的类 主要内容 2. 内部类和内部接口 3. Java API 基础 目的与要求 1. 理解接口的作用, 理解接口和实现接口的类的关系,

More information

FileMaker 16 ODBC 和 JDBC 指南

FileMaker 16 ODBC 和 JDBC 指南 FileMaker 16 ODBC JDBC 2004-2017 FileMaker, Inc. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc. FileMaker WebDirect FileMaker Cloud FileMaker,

More information

untitled

untitled 1 MSDN Library MSDN Library 量 例 參 列 [ 說 ] [] [ 索 ] [] 來 MSDN Library 了 類 類 利 F1 http://msdn.microsoft.com/library/ http://msdn.microsoft.com/library/cht/ Object object 參 類 都 object 參 object Boxing 參 boxing

More information

Struts2自定义类型转换.doc

Struts2自定义类型转换.doc Struts2 自定义类型转换 原理 struts2 的自定义类型转换机制为复杂类型的输入输出处理提供了便捷.struts2 已经为我们提供了几乎所有的 primitive 类型以及常用类型 ( 如 Date) 的类型转换器, 我们也可以为我们自定义类添加自定义类型转化器. struts2 为我们提供了一个类型转化器的入口 : ognl.defaulttypeconverter, 或继承 org.apache.struts2.util.strutstypeconverter,

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc 在 VMWare-5.5+RedHat-9 下建立 本机 QTopia-2.1.1 虚拟平台 张大海 2008-5-9 一 资源下载 1. 需要以下安装包 : tmake-1.13.tar.gz qtopia-free-source-2.1.1.tar.gz qt-embedded-2.3.10-free.tar.gz qt-x11-2.3.2.tar.gz qt-x11-free-3.3.4.tar.gz

More information

Microsoft Word - 投影片ch12

Microsoft Word - 投影片ch12 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 本章學習目標 學習如何分割檔案 第十二章大型程式的發展與常用的類別庫 認識類別庫, 以及如何取用在不同類別庫裡的類別 建構 package 的階層關係 學習 Java 裡常用的類別庫 大型程式的發展與常用的類別庫 12-2 12.1 檔案的分割 分割檔案的實作 : 1. 依序建立兩個類別檔案, 並置於同一個資料夾內

More information

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO CHAPTER 使用 Hadoop 打造自己的雲 8 8.3 測試 Hadoop 雲端系統 4 Nodes Hadoop Map Reduce Hadoop WordCount 4 Nodes Hadoop Map/Reduce $HADOOP_HOME /home/ hadoop/hadoop-0.20.2 wordcount echo $ mkdir wordcount $ cd wordcount

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

Microsoft PowerPoint - 03.Fortran程序设计基础1

Microsoft PowerPoint - 03.Fortran程序设计基础1 简单 Fortran 90 程序的构造形式 : 第二讲 Fortran 程序设计基础 (2) [PROGRAM 程序名 ] [ 声明语句 ] [ 执行语句 ] END [PROGRAM [ 程序名 ]] 程序的书写 (P5) PROGRAM MONEY!calculate balance after interest compounded! 根据利息计算余额 REAL BALANCE, INTEREST,

More information

不可思议的 9Patch 图 那些绚丽的动画效果 我们来传递消息吧! 我想存数据肿么办? 不能没有的声音效果! 终于到了传感器应用! 亲, 联个网试试?! 开发工具和技巧总结 内容概要 ( 下 )

不可思议的 9Patch 图 那些绚丽的动画效果 我们来传递消息吧! 我想存数据肿么办? 不能没有的声音效果! 终于到了传感器应用! 亲, 联个网试试?! 开发工具和技巧总结 内容概要 ( 下 ) 胡家威 计研135班 http://hujiaweibujidao.github.io/ 不可思议的 9Patch 图 那些绚丽的动画效果 我们来传递消息吧! 我想存数据肿么办? 不能没有的声音效果! 终于到了传感器应用! 亲, 联个网试试?! 开发工具和技巧总结 内容概要 ( 下 ) 不可思议的 9Patch 图 9Patch 图片是一种特殊的 png 图片, 以.9.png 结尾, 它是为了解决

More information

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点

OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 推迟至 4 月 25 日晚 9 点 复习 Protected 可以被子类 / 同一包中的类访问, 不能被其他类访问 弱化的 private 同时赋予 package access class MyType { public int i; public double d; public

More information

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题 2009 年 3 月 全 国 计 算 机 等 级 考 试 笔 试 试 卷 二 级 Java 语 言 程 序 设 计 ( 考 试 时 间 90 分 钟, 满 分 100 分 ) 一 选 择 题 ( 每 题 2 分, 共 70 分 ) 下 列 各 题 A) B) C) D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的 请 将 正 确 选 项 填 涂 在 答 题 卡 相 应 位 置 上,

More information

5. 安全性面向网络 分布式环境的 Java 语言是目前安全性最佳的编程语言 6. 跨平台性 Java 解释器采用与体系结构无关的字节代码指令技术, 只需安装 Java 运行系统就可以保证 Java 程序在网络上的任何地方运行 7. 可移植性跨平台性保证了软件的可移植性,Java 类库具有可移植性,

5. 安全性面向网络 分布式环境的 Java 语言是目前安全性最佳的编程语言 6. 跨平台性 Java 解释器采用与体系结构无关的字节代码指令技术, 只需安装 Java 运行系统就可以保证 Java 程序在网络上的任何地方运行 7. 可移植性跨平台性保证了软件的可移植性,Java 类库具有可移植性, 全国计算机等级考试二级教程 Java 语言程序设计基本要求 1 掌握 Java 语言的特点, 实现机制和体系结构 2 掌握 Java 语言中面向对象的特性 3 掌握 Java 语言提供的数据类型和结构 4 掌握 Java 语言编程的基本技术 5 会编写 Java 用户界面程序 6 会编写 Java 简单应用程序 7 会编写 Java 小应用程序 (Applet) 8 了解 Java 的应用 主要内容第

More information

技 术 文 件

技  术  文  件 技术文件 技术文件名称 :IAlert 接口使用说明 技术文件编号 : 版 本 :V1.0 共页 ( 包括封面 ) 拟制 审核 会签 标准化 批准 中兴通讯股份有限公司 XX 软件模块详细设计说明 版本号 修改记录 文件编号 版本号 拟制人 / 修改人 拟制 / 修改日期 1 V1.0 胡曦 2005-08-12 新建 更改理由 主要更改内容 ( 写要点即可 ) 注 1: 每次更改归档文件 ( 指归档到事业部或公司档案室的文件

More information