JAVA 练习题第10章--java数据流解析

合集下载

Java基础第10章课件

Java基础第10章课件

支持回推操作的数据流中的方法:
1. boolean markSupported()
用于指示数据流是否支持回推操作,当 一个数据流支持mark( )和reset( )方法时 返回true,反之返回false。
2. void mark(int markarea)
用于标记数据流的当前位置。
3. void reset( )
3. int available( )
返回可以从数据流中读取的字节数。
4. long skip(long l)
跳过数据流中指定数量的字节不读, 返回值表示实际跳过的字节数。
对数据流中字节的读取通常是按从 头到尾顺序进行的,如果需要以反 方向读取,则需要用“回推”(push back)的方法实现。
Collection
接口
+add(element:Object): boolean
+remove(element:Object): boolean +contains(element:Object): boolean +iterator(element:Object): boolean
接口
Set
List
1. 一种含有重复元素的、有序的集合,也 称序列;
2. 用户可以控制向序列中插入元素的位置 ,并可以按元素的位序(加入顺序)来 访问它们,位序从0开始。
3. ArrayList类实现了List接口。
ArrayList h = new ArrayList();
h 0x4a678b
0x4a678b
1st

HashSet ArrayList Vector
Set接口
1. 一种不包含重复元素的、有序的集和, 称为集合;

Java语言程序设计chap10

Java语言程序设计chap10
void close()
张华
Java Programming
10
理解输入输出超类
• Writer和OutputStream定义类似的接口 和 定义类似的接口
– Writer包含用于写字符和字符数组的方法 包含用于写字符和字符数组的方法
void write(int c) void write(char[] cbuf) void write(char[] cbuf, int off, int len)
– InputStream定义了相同的方法,但用于字节和字节数组 定义了相同的方法, 定义了相同的方法
int read() int read(byte[] b) int read(byte[] b, int off, int len)
张华
Java Programming
9
理解输入输出超类
• Reader和InputStream定义类似的接口 和 定义类似的接口
• Writer和OutputStream定义类似的接口 和 定义类似的接口
– 都定义了 都定义了flush方法 方法
void flush() • 为了提高效率,数据被输出到目的地之前被分割成固定长度的块, 为了提高效率,数据被输出到目的地之前被分割成固定长度的块, 放在输出缓冲区中, 放在输出缓冲区中,然后以块为单位输出
使用管道流
• 管道流
– 主要用于线程之间的通信
• 将一个线程的输出连接到另一个线程的输入 • PipedInputStream必须与 必须与PipedOutputStream配合 必须与 配合
管道 写 线程1 线程 PipedOutputStream PipedInputStream 读 线程2 线程

java语言程序设计第十章十二题参考答案

java语言程序设计第十章十二题参考答案

10.12 定义Myrectangle类,包含: 两个名为x和y的double 型数据域,表明矩形的中心点,这两个数据域都带有get和set方法(假设这个矩形的边和x和y轴平行); 带get和set方法的数据域width和height. 一个无参构造方法,,该方法创建一个(x,y)的值为(0,0)且width和height的默认值为1. 一个构造方法,创建带制定的x,y,width,height的矩形。 方法getArea()返回矩形的面积。 方法getPrimeter()返回矩形的周长。 如果给定的点(x,y)在矩形内,那么方法contains(double x,double y)返回true. 如果给定的矩形在这个矩形内,那么方法contains(Myrectangle2D r)返回true。 如果给定的矩形和这个矩形重叠,那么方法overlaps(Myrectangle2D r)返回true. 画出该类的UML图,实现这个类。 代码为: class MyRectangle2D{ double x=0,y=0;//x,y表示矩形中心点 double width=1,height=1; public double getX(){ return x; } public double getY(){ return y; } public void setX(double x){ this.x=x; } public void setY(double y){ this.y=y; } public double getWidth(){ return width; } public void setWidth(double width){ this.width=width; } public double getHeight(){ return height;

} public void setHeight(double height){ this.height=height; } MyRectangle2D(double x,double y,double width,double height){ this.x=x; this.y=y; this.width=width; this.height=height; }

Java语言程序设计课程教学辅导技术资料——第10章JavaIO技术及应用(第2部分)

Java语言程序设计课程教学辅导技术资料——第10章JavaIO技术及应用(第2部分)

Java语言程序设计课程教学辅导技术资料——第10章JavaIO技术及应用(第2部分)目录1.1Java语言程序设计课程教学辅导技术资料——第10章Java I/O 技术及应用(第2部分) (2)1.1.1随机文件读写 (2)1.1.2过滤流--带格式的读写操作 (5)1.1.3标准输入输出流 (9)1.1Java语言程序设计课程教学辅导技术资料——第10章Java I/O 技术及应用(第2部分)【教学目标】在本单元中希望您重点了解并掌握如下知识点:文件名及目录名的File类,本地文件读写,管道方式读写,随机文件读写,字符格式文件读写,标准数据类的数据读写,标准输入输出设备流等。

1.1.1随机文件读写1、RandomAccessFile类(1)为什么要提供RandomAccessFile类对于InputStream 和OutputStream 来说,它们的实例都是顺序访问流,也就是说,只能对文件进行顺序地读/写。

随机访问文件则允许对文件内容进行随机读/写。

在java中,类RandomAccessFile 提供了随机访问文件的方法。

(2)RandomAccessFile类的继承关系它直接继承于Object类而非InputStream或者OutputStream 类,从而可以实现读写文件任何位置中的数据(只需要改变文件的读写位置的指针)。

public class RandomAccessFile extends Object implements DataInput, DataOutput接口DataInput 中定义的方法主要包括从流中读取基本类型的数据、读取一行数据、或者读取指定长度的字节数。

如:readBoolean( )、readInt( )、readLine( )、readFully( ) 等。

接口DataOutput 中定义的方法主要是向流中写入基本类型的数据、或者写入一定长度的字节数组。

p10

p10

2020年1月5日星期日
5时59分29秒
Java 程序设计
14
10.2.5 多线程的同步
如果采用多线程同步控制机制,等到第一 个线程读取完数据,第二个线程才能处理该 数据,就会避免错误。可见,线程同步是多 线程编程的一个相当重要的技术。
10.2.6 多线程的问题
由于多线程是同时运行于内存中,程序员 必须加倍注意自己的多线程程序,搞清楚它 们之间的关系。否则还是少用几个线程,因 为不是线程越多程序就执行得越快,还有很 多因素决定着程序的执行速度。
l
线程调用了sleep()、join()方法时,线
程进入不可运行状态。
l
线程调用了wait()方法,线程由运行中
状态转入阻塞状态。
l 如果线程使用了synchronized来实现对 象的“互斥锁”联系,当前线程能获得使用 权时,继续为运行中状态,继续执行;若当 前线程没有获得使用权,进入阻塞状态。
若线程中有输入输出操作时,也可进入阻塞状 态,待输入输出结束后,线程进入可运行状 态。
(2)可以分别用Socket类的getInputStream( )和 getOutStream( )方法来发送和捕捉数据。
2020年1月5日星期日
5时59分29秒
Java 程序设计
20
10.3.4 无连接的客户/服务器通过数据报的交互
流式Socket可以实现准确的通信,但是占用资源较 多,在某些无须实时交互的情况下 ,例如收发Email等,采用保持连接的流式通信并不恰当,而应 该使用无连接的数据报方式。
多线程是相对单线程而言的,指的是在一 个程序中可以定义多个线程并同时运行它们, 每个线程可以执行不同的任务。
2020年1月5日星期日

Java应用教程_10Chapter

Java应用教程_10Chapter

2013年8月31日星期六
基本SQL语句

基本的SQL语句包括DQL和DML。也就 是对数据库最常用的四大基本操作:查 询(Select)、插入(Insert)、更新 (Update)和删除(Delete)2013年8月31日星来自六DQL的3种基本格式


1. 基本句型一:(最简单的SELECT语句) SELECT 字段名 FROM 数据表 例1. SELECT * FROM grade 功能说明:将grade表中的所有字段取出来。 例2. SELECT 学号,姓名 FROM grade 功能说明:将grade表中学号和姓名字段取出来。 例3. SELECT学号,姓名,语文+数学+英语 as 总成绩 FROM grade 功能说明:将grade表中的学号和姓名取出来,并将语 文、数学和英语成绩相加产生虚拟列总成绩。
2013年8月31日星期六
SQL语句分类
SQL分类 数据定义语言 (DDL) 数据操纵语言 (DQL) 数据操纵语言 (DML) 事务控制语言 (TCL) 数据控制语言 (DCL) 描述 数据定义语言(DDL)用于定义、修改或者删除数据库对象, 如Create Table等 数据查询语句(Data Query Language,DQL)用于对数据进行 检索。如最常用的Select语句 数据操纵语言(DML)用于访问、建立或者操纵在数据库中 已经存在数据,如Select、Insert、Update和Delete等等。 事务控制语言(Transact Control Language)管理DML语句所 做的修改,是否保存修改或者放弃修改。如:Commit、 Rollback、Savepoint、Set Transaction等命令。 数据控制语言(DCL)管理对数据库内对象的访问权限和授予 和回收,如Grant、Revoke等等。

JAVA语言-10

JAVA语言-10
第10章 10章
输入与输出
1
10.1 输入输出类库
Java的输入输出是以流(stream)的方式来处理, Java的输入输出是以流(stream)的方式来处理, 流是在计算机的输入、输出操作中流动的数据序列。 流式输入、输出的特点是数据的获取和发送均沿数 据序列顺序进行。 数据序列中既可以是未经加工的原始二进制数 据,也可以是按一定编码处理后符合某种格式规定 的特定数据,如字符数据,所以Java中的流有位流 的特定数据,如字符数据,所以Java中的流有位流 (字节流)和字符流之分。 输入流:从键盘、磁盘文件流向程序的数据; 输出流:从程序流向显示器、打印机和磁盘文 件的数据。
输入或读取字节流的类说明如下: InputStream类:是抽象类,其子类可完成最基本的从输 InputStream类:是抽象类,其子类可完成最基本的从输 入流读取数据的功能; FileInputStream类:以字节流方式,读取本地文件; FileInputStream类:以字节流方式,读取本地文件; FilterInputStream类:是抽象类,有2 FilterInputStream类:是抽象类,有2个子类; DataInputStream类:从字节流中读取数据时,具备格式 DataInputStream类:从字节流中读取数据时,具备格式 转换功能;(如能一次读一个双精度数) BufferedInputStream类:具缓冲功能的输入字节流。 BufferedInputStream类:具缓冲功能的输入字节流。
6
10.1.2 OutputStream类 类
OutputStream FileOutputStream FilterOutputStream PrintStream DataOutputStream BufferedOutputStream

Java程序设计 p10

Java程序设计 p10
Java程序设计
教材:Java程序设计简明教程
第10章 流、多线程与网络编程
Java输入/输出信息时,应在程序和信息 发送者或接收者之间建立一个数据通道,这 个数据通道以流(Stream)的形式表示; Java语言具有多线程的特点,对多线程的支 持使得Java的功能更加强大;而面向 Internet的网络编程将是Java今后的主要研 究方向。
2019年3月6日星期三 11时46分19秒
Java 程序设计
4
10.1.2 数据流的应用
/*ch1001.java*/ import java.io.*; public class ch1001{ public static void main(String args[]) throws IOException { FileInputStream in FileInputStream("ch1001.java"); FileOutputStream FileOutputStream("ch1001.txt"); int c; while((c=in.read())!=-1) out.write(c); in.close(); out.close(); } }
}
2019年3月6日星期三 11时46分19秒 Java 程序设计 6
10.1.3 Java文件管理 为了全面管理文件系统,Java还提供了两个类: 一般文件类File和随机存取文件类 RandomAccessFile。前者提供操作系统目 录管理的功能,允许用户访问文件属性和路 径等信息,后者用于有选择的读写文件。 File类是一种重要的非流类 1. 文件或目录的生成 2. 文件名的处理 3. 文件属性测试 4. 普通文件信息和工具 5. 目录操作
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



写一个记录( )? A.BufferedInputStream B.RandomAccessFile C.FileWriter B D.FileReader 【解析】只有RandomAccessFile才能实现在文件的 任一个位置读写一个记录。
9.在通常情况下,下列哪个类的对象可以作为
C.ch = (char)System.in.readln();
D.ch = (int)System.in.read(); 【解析】System.in.read()方法返回的是字符对应的Unicode码,即返回的类型是 int型,而ch是char类型,因此必须把方法的返回值强制转换为char类型才能把它 赋值给ch变量。另外,System.in对象中没有readln()方法。
BufferedReader类构造方法的参数( )? A.PrintStream B.FileInputStream C C.InputStreamReader D.FileReader 【解析】InputStreamReader类的对象可以作为 BufferedReader类构造方法的参数。
11.下列关于流类和File类的说法中错误的一项是




( )。 A.File类可以重命名文件 B.File类可以修改文件内容 C.流类可以修改文件内容 D.流类不可以新建目录 【解析】只有流类可以修改文件内容,而File类则 不能。
B
12.若要删除一个文件,应该使用下列哪个类的实



例( )? A.RandomAccessFile B.File C.FileOutputStream D.FileReader File类对象来实现。
{ public static void main(String args[ ]) { int i , n =10 ; int a[ ] = new int[5]; for ( i = 0 ; i < n ; i ++ ) try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数 } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i ―― ) System.out.print(a[i]+" "); System.out.println( ); } } 从标准输入(即键盘)读入5个整数存入整型 数组a中, 然后逆序输出这5个整数。
6.下列流中哪一个使用了缓冲区技术( A.BufferedOutputStaOutputStream
)?
D.FileReader
【解析】只有BufferedOutputStream使用了缓冲区
技术。
A
8.使用哪一个类可以实现在文件的任一个位置读
练习题—第10章数据流
1.下列数据流中,属于输入流的一项是( A.从内存流向硬盘的数据流 B.从键盘流向内存的数据流 C.从键盘流向显示器的数据流
)。
D.从网络流向显示器的数据流
【解析】输入流是指从外围设备流向主机(包括
CPU和内存)的数据流。
B
2.Java语言提供处理不同类型流的类所在的包是
准备向文件中写内容时,应当使用FileInputStream
流还是FileOutputStream 流? FileOutputStream
写出以下程序的功能: import java.io.* ;


public class Reverse


( )。 A.java.sql B.java.util C. D D.java.io 【解析】java.io 包是Java语言提供处理不同类型流 的类所在的包。
4.下列程序从标准输入设备读入一个字符,然后再输出到显示器,选择正确的




按注释提示完成文件复制的程序,//FileStream源代码如下:
import java.io.*; class FileStream { public static void main(String args []) { try { File inFile = new File("file1.txt"); //指定源文件 File outFile = new File("file2.txt"); FileInputStream fis = int c; //逐字节从源文件中输入,再输出到fos流 while ((c = fis.read ())!=-1) 【 2】 ; 【 1】 ; //指定目标文件
一项填入“//x”处,完成要求的功能( )。 import java.io.*; public class X8_1_4 { public static void main(String[] args) { char ch; try{ //x System.out.println(ch); } catch(IOException e){ B e.printStackTrace(); } } } A.ch = System.in.read(); B.ch = (char)System.in.read();
B
【解析】要删除文件以及查看文件属性等,应使用
13.下列哪一个是Java系统的标准输入流对象




( )? A.System.out B.System.in C.System.exit B D.System.err 【解析】System.in是Java系统的标准输入流对象, 而System.out和System.err则是Java系统的标准输出 流和标准错误对象,System.exit则是System类的退 出方法。
相关文档
最新文档