Java语言程序设计基础篇课后题答案-Chapter 18 Binary I_O
Java程序设计课后练习答案

《Java程序设计》课后练习答案第一章Java概述一、选择题1.( A )是在Dos命令提示符下编译Java程序的命令,( B )是运行Java程序的命令。
2.( D )不是Java程序中有效的注释符号。
A.* */C./** */D.*/ */3.( B )不是Java语言的特点。
A.面向对象B.自动检查语法错误C.跨平台D.解释执行编译器会将Java程序转换为( C )A.可执行代码B.目标代码C.字节码D.机器代码源文件的扩展名是( D )1、.class B. .jar C. .jav D. .java二、简答题1)、Java的跨平台的含义是什么为什么Java可以跨平台Java语言的一个非常重要的特点就是平台无关性。
它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。
Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。
JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。
Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。
字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。
以下图展示了Java程序从编译到最后运行的完整过程。
2)、简述Java语言的特点Java具有以下特点:1)、简单性Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。
2)、可靠性和安全性Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。
3)、面向对象Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。
Java程序设计基础习题答案

Java程序设计基础课后习题参考答案第2章1. 关于Java Application 的入口方法main()的检验:main()方法的参数名是否可以改变main()方法的参数个数是否可以改变该方法名是否可以改变参考答案:(1)main()方法的参数名可以改变。
(2)main()方法的参数个数不可以改变。
(3)该方法名不可以改变。
2. 当一个程序没有main()方法时,能编译吗如果能编译,能运行吗参考答案:当一个程序没有main()方法是,是可以编译通过的,但是不能给运行,因为找不到一个主函数入口。
3. 下列语句能否编译通过byte i = 127;byte j = 128;long l1 = 999999;long l2 = 99;参考答案:byte i 和 long l1可以编译通过。
而 byte j 和long l2 超出自身数据类型范围,所以编译失败。
4. 下列语句能否编译通过float f1 = ;float f2 = 3.5f;参考答案:java中浮点型的数据在不声明的情况下都是double型的,如果要表示一个数据是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。
5. 验证int 和char,int和double等类型是否可以相互转换。
参考答案:(1)char类型可以转换为int 类型的,但是int类型无法转换为char 类型的;(2)int 可以转换为 double类型的,但是double类型无法转换为int 类型的。
6. 计算下列表达式,注意观察运算符优先级规则。
若有表达式是非法表达式,则指出不合法之处且进行解释。
(1) 4+5 == 6*2 (2) (4=5)/6(3) 9%2*7/3>17 (4) (4+5)<=6/3(5) 4+5%3!=7-2 (6) 4+5/6>=10%2参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4是不合法的。
Java基础程序设计_课后习题

第一章【思考题】1、简述path环境变量的作用。
2、请说说你对JVM的理解。
【答案】1、path环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。
当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。
2、JVM是Java Virtual Machine的缩写,全称是Java虚拟机。
Java语言的一个非常重要的特性就是跨平台性,而Java虚拟机是实现这一特性的关键。
不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。
Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
第二章【思考题】1、请简述&与&&的区别。
2、简述break、continue和return语句的区别。
【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
当运算符“&”和“&&”的右边为表达式时,使用“&”进行运算,不论左边为true或者false,右边的表达式都会进行运算。
如果使用“&&”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“&&”被称作短路与。
2、break语句:在switch条件语句和循环语句中都可以使用break语句。
当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。
Java程序设计教程 课后答案

Java程序设计教程第3版课后答案第一章填空题:1、Java源程序文件的扩展名是_java_;Java源程序经编译后生成Java字节码文件,其扩展名是_class_。
2、在Java语言中,将源代码翻译成_java字节码文件_时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。
3、一个Application源程序文件名为MyPro.java,如果使用Sun公司的Java开发工具SDK 编译该源程序文件并使用其虚拟机运行这个程序的字节码文件,应该顺序执行如下两个命令:_javac MyPro.java_、_java MyPro_。
4. 已知:int a =8,b=6; 则:表达式++a-b++的值为_3_。
5. 已知:boolean b1=true,b2; 则:表达式! b1 && b2 ||b2的值为_false_。
6. 表达式(18-4)/7+6的运算结果是_8_。
7、表达式5>2 && 8<8 && 23<36的运算结果是_false_。
思考题:1、源程序是什么?答:源程序文件的三要素:一、以package语句开始的包声明语句为可选,若有,只能有一个且必须是第一句,若没有,此文件将放到默认的当前目录下二、以import语句开始的类引入声明语句,数量可以是任意个三、class定义和interface定义中,由public开始的类定义只能有一个,且要求源程序文件名必须与public类名相同,Java语言对字符的大小写敏感2、编译的作用是什么?答:用Java语言编辑的源程序的执行方法是采用先经过编译器编译、再利用解释器解释的方式来运行的。
3、什么是Java的byte-codes,它的最大好处是什么?答:Java源程序经过编译器编译,会被转换成一种我们将它称之为“字节码(byte_codes)”的目标程序。
“字节码”的最大特点便是可以跨平台运行。
Java语言程序设计课后习题--优选包括答案.docx

Java语言程序设计 (郑莉 )第二章习题答案1.什么是对象、类,它们之间的联系答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。
对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。
现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。
2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象!3)两者的关系:对象是类的具体实例. 。
2.什么是面向对象的程序设计方法它有那些基本特征答:面向对象程序设计从所处理的数据入手,以数据为中心而不是以服务为中心来描述系统。
它把编程问题视为一个数据集合,数据相对于功能而言,具有更强的稳定性。
它的特征:抽象,封装,继承,多态。
3(无用)4.请解释类属性、实例属性及其区别。
答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。
5.请解释类方法、实例属性及其区别。
答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。
类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。
区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法;6.类的访问控制符有哪几种具体含义及其区别。
答:类的访问控制符只有public (公共类)及无修饰符(默认类)两种。
区别:当使用 public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。
7类成员的访问控制符有哪几种他们对类成员分别有哪些访问限制的作用答 : 类成员的访问控制符有public,private,protecte及无修饰符.public( 公有的 ): 用 public修饰的成分表示公有的, 也就是它可以被其他任何对象访问( 前提是对累成员所在的类访问有访问权限).Private(保护的 ) :类中限定为private的成员只能被这个类本身访问,在类外不可见。
Java语言程序设计第1-6章 课后习题答案

第1章Java语言概述选择题1-1 在下列概念中,Java语言只保留了(B)A. 运算符重载B. 方法重载C. 指针D. 结构和联合1-2 下列关于Java语言特性的描述中,错误的是(D)A. 支持多线程操作B. Java程序与平台无关C. Java和程序可以直接访问Internet上的对象D. 支持单继承和多继承1-3 下列关于Java Application程序在结构上的特点的中,错误的是(C)A. Java程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类1-4 Java程序经过编译后生成的文件的后缀是(C)A. .objB. .exeC. .classD. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是(A)A. 第一个命令行参数(紧跟命令字的参数)被存放在args[0]中B. 第一个命令行参数被存放在args[1]中C. 命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关判断题1-1JavaC++的语言之前问世的。
(错)1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。
(对)1-3Java语言中取消了联合的概念,保留了结构概念。
(错)1-4Java语言中数据类型占内在字节数与平台无关。
(对)1-5Java语言中可用下标和指针两种方式表示数组元素。
(错)1-6Java语言的源程序不是编译型的,而是编译解释型的。
(对)1-7操作系统中进程和线程两个概念是没有区别的。
(错)1-8Java语言既是面向对象的又是面向网络的高级语言。
(对)1-9Java程序分为两大类:一类是Application程序,另一类是Applet程序。
前者又称Java应用程序,后者又称为Java小应用程序。
(对)1-10Java Application程序是由多个文件组成的,其中可以有也可以没有主文件。
java语言程序设计方案基础篇答案
在一个正n边形中,所以边的长度都相同,且所有角的度数都相同(即这个多边形是等边等角的)。
设计一个名为RegularPolygon的类,该类包括:一个名为int型的私有数据域定义多边形的边数,默认值3。
一个名为side的double型私有数据域存储边的长度,默认值1。
一个名为x的double型私有数据域,它定义多边形中点的x坐标,默认值0。
一个名为y 的double型私有数据域,它定义多边形中点的y坐标,默认值0。
一个创建带默认值的正多边形的无参构造方法。
一个能创建带指定边数和边长度、中心在(0,0)的正多边形的构造方法。
一个能创建带指定边数和边长度、中心在(x,y)的正多边形的构造方法。
所有数据域的访问器和修改器。
一个返回多边形周长的方法getPerimeter()。
一个返回多边形面积的方法getArea().计算多边形面积的公式是:面积=(n*s*s)/(4*tan(p/n)) 画出该类的UML图。
实现这个类。
编写一个测试程序,分别使用无参构造方法、RegularPolygon(6,4)和RegularPolygon(10,4,5.6,7.8)创建三个RegularPolygon对象。
显示每个对象的周长和面积。
代码:class Regularpolygon{private int n=3。
//边长private double side=1。
//边长private double x=0。
private double y=0。
//x,y为多边形中点的x,y坐标Regularpolygon(){}Regularpolygon(int newN,int newS){n=newN。
side=newS。
x=0。
y=0。
}Regularpolygon(int newN,int newS,double newX,double newY){n=newN。
side=newS。
x=newX。
y=newY。
}public void setN(int newN){n=newN。
《Java基础入门》课后章节习题及答案(完整版)
《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后章节习题及答案(完整版)《Java基础入门》课后习题第1章Java开发入门一、填空题1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。
2、Java程序的运行环境简称之为JRE_____。
3、编译Java程序需要使用_javac_____命令。
4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。
5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。
二、选择题1、以下选项中,哪些属于JDK工具?(多选)ABCDA、Java编译器B、Java运行工具C、Java文档生成工具D、Java打包工具2、Java属于以下哪种语言?CA、机器语言B、汇编语言C、高级语言D、以上都不对3、下面哪种类型的文件可以在Java虚拟机中运行?DA、.javaB、.jreC、.exeD、.class4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?BA、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;三、问答题1、简述Java的特点。
面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。
2、简述JRE与JDK的区别。
JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。
Java语言程序设计(第版)第-章-课后习题标准答案
Java语言程序设计(第版)第-章-课后习题答案————————————————————————————————作者:————————————————————————————————日期:第1章Java语言概述选择题1-1 在下列概念中,Java语言只保留了(B)A. 运算符重载B. 方法重载C. 指针D. 结构和联合1-2 下列关于Java语言特性的描述中,错误的是(D)A. 支持多线程操作B. Java程序与平台无关C. Java和程序可以直接访问Internet上的对象D. 支持单继承和多继承1-3 下列关于Java Application程序在结构上的特点的中,错误的是(C)A. Java程序是由一个或多个类组成的B. 组成Java程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同D. 组成Java程序的多个类中,有且仅有一个主类1-4 Java程序经过编译后生成的文件的后缀是(C)A. .objB. .exeC. .classD. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是(A)A. 第一个命令行参数(紧跟命令字的参数)被存放在args[0]中B. 第一个命令行参数被存放在args[1]中C. 命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关判断题1-1JavaC++的语言之前问世的。
(错)1-2Java语言具有较好的安全性和可移植性及与平台无关等特性。
(对)1-3Java语言中取消了联合的概念,保留了结构概念。
(错)1-4Java语言中数据类型占内在字节数与平台无关。
(对)1-5Java语言中可用下标和指针两种方式表示数组元素。
(错)1-6Java语言的源程序不是编译型的,而是编译解释型的。
(对)1-7操作系统中进程和线程两个概念是没有区别的。
(错)1-8Java语言既是面向对象的又是面向网络的高级语言。
Java程序设计基础习题答案
Java程序设计基础习题答案第1章1选择题(1)BCD (2)D (3)CD (4)CD第2章1、错误:-0x3221 fa00 8.33E e-10整数:1856 4l 021 0xa6 0xa2e3 35 -78999 0L浮点数:0x3.45 -3.81 1.34e-8 -.67e3 25. 053.249 -1E3八进制数:053.249 021十六进制数:0xa6 0x3.45 0xa2e32、正确的标识符:_book, book3, _9days, I, copy_file, _56, up_down, if_count, agentEventListener 错误的标识符:int, println, static, a$, 5files, -number, date:x, +digit, $abcd,3、(1)int i改为static int i。
(2)j=i 改为j=(short)i。
(3)i为数组,应该改为int i[] = new int[10]。
同时后面也要做相应修改。
(4)将k=i&j改为k= (Boolean)i&j。
4、x=10, y=6, z=false(1)false(2)x=16(3)true(4)x=60(5)6(6)6(7)true(8)false5、x=5, y=7, z=0(1)35(2)-1(3)6(4)13(5)36、(1)x>=y?10:3 y%=(2)x<10 i>6 j==5 && || y=(3)b+c +d a-=(4)a<b ||x &y第3章1、选择题(1)C (2)B (3)无答案,全部正确,不过A for(;;);t选项是个死循环,但不存在语法错误(4)C (5)A (6)B2、(1)全部为0(2)m=34 0到99所有被3整除的数N=15 0到99所有被7整除的数3、(1)char ch =0;try{System.out.println("please input:");ch = (char)System.in.read();} catch(Exception e){e.printStackTrace();}switch(ch) {case 'L':System.out.println("Left");break;case 'R':System.out.println("Right");break;default:System.out.println("Not Known");}(2)int i =1, n=0;for(n=11;n<0;n--)i =i*n;(3)int i =1, n=0;i=1;n=0;for(i=1;i<11;i++)System.out.println("number: " + i +" sum: " + (n=n+i)); (4)int n=4,i=0, j=0;int a[][] = new int[n][n];for(i=0;i<n;i++)for(j=0;j<n;j++)if (i==j)a[i][j] = 1;elsea[i][j] = 0;第4章1选择题(1)D (2)B (3)C (4)B (5)AC (6)C 2判断题m in main = aa in main = 4return from testV ar2 : a in testV ar3 is 547554m+a= 603、编程题(1)public class abc {public abc() {} int factorial(int x) {int rst =1;for(int i=1;i<=x;i++)rst *= i;return rst;}void printf(int x, int rst) {System.out.println(x+"的阶乘是: " +rst);}public static void main(String args[]) {int i =0;abc myabc = new abc();myabc.printf(6,myabc.factorial(6));myabc.printf(9,myabc.factorial(9));}}(2)int factorial(int x) {if (x <1) return 0;else {if(x==1) return 1;elsereturn x*factorial(x-1);}}第5章1、选择题(1)B (2)D (3) A (4)A (5)C (6)A (7)A (8)C (9)D (10)D2、运行结果:X=130, y=45X+y=175x-y=95x*y=5850x/y=2.888888888888889更改后的两个类:class Excer{public static void main(String[] args) {new Excer().math();}int x=130, y=45;Math myMath = new Math();System.out.println("x="+x+" , y="+y);System.out.println("x+y=" + myMath.plus(x,y));System.out.println("x-y=" + myMath.minus(x,y));System.out.println("x*y=" + myMath.multi(x,y));System.out.println("x/y=" + myMath.div(x,y));}}class Math {int plus(int a, int b) {return a+b;}int minus(int a, int b) {return a-b;}int multi(int a, int b) {return a*b;}float div(int a, int b) {return((float)a/b);}}3、编程题(1)class PlayCard {private Poker poker;public PlayCard() {poker = new Poker();}public String play() {int i=0,j=0;java.util.Random ab = new java.util.Random();i = ab.nextInt(13);j = ab.nextInt(4);return (poker.nums[i] + " of " + poker.colors[j]); }public String play(int x, int y) {return (poker.nums[x] + " of " + poker.colors[y]); }}(2)class Poker {public String nums[];public String colors[];nums = new String[13];colors = new String[4];nums[0] = "Ace";nums[1] = "Two";nums[2] = "Three";nums[3] = "Four";nums[4] = "Five";nums[5] = "Six";nums[6] = "Seven";nums[7] = "Eight";nums[8] = "Nine";nums[9] = "Ten";nums[10] = "Jack";nums[11] = "Queen";nums[12] = "King";colors[0] = "Diamonds";colors[1] = "Clubs";colors[2] = "Hearts";colors[3] = "Spades";}}(3)public static void main(String args[]) {PlayCard pcard = new PlayCard();for(int i=0;i<13;i++)for(int j=0;j<4;j++)System.out.println(pcard.play(i,j));}第6章1、选择题(1)B (2)B (3)C (4)B (5)D (6)C (7)AB (8)BC2、阅读程序(1)methodFour覆盖了父类的方法(2)mehtodTwo重载了父类的方法(3)6个以上,其中本身4个方法,从ClassA继承了2个方法methodOne,和static methodThree,从Object类继承了几个方法,如Equal等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Chapter 18 Binary I/O 1. Although it is not technically precise, a text file consists of a sequence of characters and a binary file consists of a sequence of bits. You can use a text editor to view a text file, but not a binary file.
2. You have to use Java I/O classes to create objects and use the methods in the objects to perform I/O. A Java I/O object is called a stream. An object for reading data is called an input stream and an object for writing data is called an output stream.
3. Binary I/O reads a byte from a file and copies it directly to the memory with any conversion, vice versa. Text I/O requires encoding and decoding. The JVM converts a Unicode to a file specific encoding when writing a character and coverts a file specific encoding to a Unicode when reading a character.
4. Characters are represented using Unicode in the memory and characters are represented in a file using a specified encoding scheme. If no encoding scheme is specified, the system’s default encoding scheme is used.
5. The values stored in the text file are 0x41 0x42 0x43. 6. If you write string "100" to an ASCII text file, the values stored are 0x31 0x30 0x30. If you write a numeric byte-type value 100 using binary I/O, the value stored in the file is 0x64.
7. The encoding scheme for representing a character in a Java program is the Unicode. By default, a text file is encoded using ASCII.
8. Almost all the methods and constructors in Java I/O classes, because there are always some unexpected situation may arise during I/O.
9. Two reasons: (1) closing a stream ensures that data will be written to the file. (2) closing a stream release resource acquired by the stream object.
10. The value of a byte is returned as an int in the range 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. The only abstract method in InputStream is read() and the only abstract method in OutputStream is write(int).
11. All the methods in FileInputStream/FileOutputStream are inherited from InputStream/OutputStream. Use new FileInputStream(filename) or new FileInputStream(File) to create a new FileInputStream and use new FileOutputStream(filename), new FileOutputStream(File), new FileOutputStream(filename, true) or new FileOutputStream(File, true) to create a FileOutputStream.
12. A FileNotFoundException would occur if you attempt to create an input stream for a nonexistent file. You can append data in an existent file if the output stream is created using new FileOutputStream(filename, true) or new FileOutputStream(File, true). Otherwise, the file is overridden if it already exists.
13. An instance of FileInputStream can be used as an argument to construct a Scanner and an instance of FileOutputStream can be used as an argument to construct a Formatter. So you can create a Formatter to append text into a file using
new Formatter(new FileOutputStream("temp.txt", true));
If temp.txt does not exist, it is created. If temp.txt already exists, new data is appended to the file.
14. Invoking read() reads one byte from the input. So, input.available() returns 99. After invoking readInt(), input.available() returns 99 – 4 = 95. After invoking readChar(), input.available() returns 95 – 2 = 93. After invoking readDouble(), input.available() returns 93 – 8 = 85.
15. writeByte(91) writes one byte for number 91 (0x5B in hex, 01011011 in binary) is written to a file using FileOutputStream.
16. The available() method returns the available bytes in the stream. available() == 0 indicates the end of a file.
17. Since java.io.FileNotFoundException is a subclass of IOException, the catch clause for java.io.FileNotFoundException should be put before the catch clause for java.io.IOException.
18. Java uses Unicode, but Windows uses ASCII. The Unicode is converted to ASCII code when writing a character. After the program is finished, the file will contain eight bytes, each represents an ASCII code. So, the values are 31 32 33 34 35 36 37 38
Note the ASCII code in hex for character 1 is 31. 19. Each int value takes four bytes. Since two int values are written into the file, the file contains eight bytes. The values are 00 00 04 D2 00 00 16 2E