自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后

合集下载

java中输入输出的总括(初学必看)

java中输入输出的总括(初学必看)
java中输入输出的总括(初学必看)
第八章 输入输出流
【课前思考】
1. 字节流和字符流的基类各是什么?
2. 什么是对象的串行化?对象串行化的作用是什么?
【学习目标】
本讲主要讲述了java语言中的输入/输出的处理,通过本讲的学习,同学们可以编写更为完善的java程序。
import java.io.*;
public class Write1
{
public static void main(String args[])
{
try
{
System.out.print("Input: ");
int count,n=512; e[n];
? String list( ); //列出当前目录下的文件
例 8.4 自动更新文件。
本例使用File类对象对指定文件进行自动更新的操作。程序如下:
import java.io.*;
import java.util.Date;
import java.text.SimpleDateFormat;
}
System.out.println();
for (int i=0;i<COUNT;I++) 按字符方式输出buffer
{
System.out.print((char) buffer[i]);
}
System.out.println("count = "+ count); //buffer实际长度
import java.io.*;
public class Input1
{

Java第08章--1(Java异常)

Java第08章--1(Java异常)

try{ //接受监视的程序块,在此区域 //内发生的异常,由catch中指定 //的程序处理; } // 不能有其它语句分隔 catch(要处理的异常种类和标 识符){ //处理异常;} catch(要处理的异常种类和标 识符){ //处理异常;} … finally{// 释放资源 //最终处理(缺省处理);} … //Other Statements
2、捕获例外
try代码段包含可能产生例外 的代码 try代码段后跟有一个或多个 catch代码段 每个catch代码段声明其能处 理的一种特定类型的例外 每个catch代码段都是一段例 外处理代码 程序继续执行最后一个catch 代码段后的代码 (或执行完finally代码段后) 不同的代码段是不同的作用 域,不可访问相互之间定义 的局部变量
返回描述异常的字符串 “classname” : “getMessage()”
Throwable
Error
Exception
String getMessage() String getLocalizedMessage() void printStacห้องสมุดไป่ตู้Trace() void printStackTrace(PrintStream s) void printStackTrace(PrintWriter s) Throwable fillInStackTrace()
3、例外的分类
Java按照OOP的思想建立了一个异常处理(Exception handling)机制以捕获在程序运行期间所发生的错误并抛出 异常信息,还可以按照异常的类别进行处理,封装在 ng类包中。 一个例外是由一个对象来代表的,所有的例外都直接或 间接地继承自Throwable类,在Java类库的每个类包中都定 义了例外类。这些例外类分成两大类:Error类及Exception 类,后者是Java程序中需要大量处理的。 除了Java类库所定义的例外类之外,用户也可以通过继 承已有的例外类来定义自己的例外类,并在程序中使用(利 用throw产生,throws声明抛出,catch捕捉并处理)。

Java程序设计教程 第八章

Java程序设计教程 第八章

数据成员
Protected String buffer Protected int count Protected int pos
说明
用来储存将要读取的字符 缓冲内的有效数目 指向将要读取字符的指针
8.2.3 管道流
“管道”的概念:即它把一个程序的输出与另一 个程序的输入连接起来,传送的同样是字符流。 表8-4是PipedInputStream的数据成员:
图8-1 读取数据操作
图8-2 写入数据操作
8.1 输入输出概述
使用一个流对象,就可以方便地进行读取 或写入操作。在前面的章节里,就已经接 触过System.out,它就是一个PrintStream 实例。已知它有方法println(String),一条语 句System.out.println("Hello World!")就会在 控制台窗口显示Hello World!。另外, System.in是一个InputStream实例。 所有的输入输出类都直接或间接地从两个基 类派生而来,这两个基类分别是 InputStream和OutputStream两个抽象类。
8.2.6 文件流FileStream
3. 文件输出流:FileOutputStream类
一个文件输出流的工作是把内容输出到一个File或者一个 FileDescriptor。FileOutputStream类的构造函数如表8-10
函数名 FileOutputStream(File file) 说明 将内容写入file所代表的文件对象
8.2.1 字节流
ByteArrayOutputStream类的构造方法有两种: 一种是无参数构造方法,另一种原型是 ByteArrayOutputStream(int size),size指定了数 组大小。该类拥有的数据成员见表8-2。 数据成员

Java课件第八章 输入输出流

Java课件第八章 输入输出流
d e f in it io n o f h id d e n is s y s t e m - d e p e n d e n t . O n W in d o w s , y o u can m ark a file h id d e n in t h e F ile P r o p e r t ie s d ia lo g b o x . O n U n ix s y s t e m s , a f ile is h idden if it s n a m e be gin s w it h a p e rio d c h a ra c t e r '.'.
public static void main(String[] args){ //在当前目录下创建一个与aaa.txt文件名相关联的文件对象
File f1 = new File("aaa.txt"); //指明详细的路径以及文件名,请注意双斜线 File f2 = new File("D:\\Java\\Hello.java"); } }
//f.createNewFile();
}
}
2021/7/13
Case Study: FileTest.java
9
为了做到程序的平台无关性,java中提供了一个常量来表 示目录的分隔符:separator
import java.io.*;
public class FileTest{
public static void main(String[] args) throws Exception{
R eturn s true if th e F ile o bject rep resen ts a directo ry .

Java输入输出流详解

Java输入输出流详解

通过数据流、序列化和文件系统提供系统输入和输出。

Java把这些不同来源和目标的数据都统一抽象为数据流。

Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。

在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流。

1.1、Java流的分类按流向分:输入流: 程序可以从中读取数据的流。

输出流: 程序能向其中写入数据的流。

按数据传输单位分:字节流: 以字节为单位传输数据的流字符流: 以字符为单位传输数据的流按功能分:节点流: 用于直接操作目标设备的流过滤流: 是对一个已存在的流的链接和封装,通过对数据进行处理为程序提供功能强大、灵活的读写功能。

1.2、java.io常用类JDK所提供的所有流类位于java.io包中,都分别继承自以下四种抽象流类:InputStream:继承自InputStream的流都是用于向程序中输入数据的,且数据单位都是字节(8位)。

OutputSteam:继承自OutputStream的流都是程序用于向外输出数据的,且数据单位都是字节(8位)。

Reader:继承自Reader的流都是用于向程序中输入数据的,且数据单位都是字符(16位)。

Writer:继承自Writer的流都是程序用于向外输出数据的,且数据单位都是字符(16位)。

java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。

在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。

流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。

自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题

自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题
/5346389)欢迎加入...欢迎交流...止不住的惊喜等着你.........
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题
八、Java异常处理及输入输出流简介
17.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。
18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制?
19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。
throw new Exception();
}
catch(Exception e)
{
System.out.println("catch3");
}
finally
{
System.out.println("final
说明:自定义异常类,关键是选择继承的超类——必须是Exception或者其子类。用异常代表错误,而不要再使用方法返回值。
}
finally
{ System.out.println("执行d Finally"); }
}
}
7.答:无论是出于何种原因,只要执行离开try/catch代码块,就会执行finally代码块。即无论try是否正常结束,都会执行 finally定义的最后的代码。如果try代码块中的任何代码或它的任何catch语句从方法返回,也会执行finally代码块。但本题中在try代 码块中执行了“System.exit(0);”语句,执行了这一语句后,Java虚拟机(JVM)将被终止。那么finally语句块一定不会被执行。

自考Java语言程序设计(一)课后习题及答案

自考Java语言程序设计(一)课后习题及答案

自考Java语言程序设计(一)课后习题及答案自考Java语言程序设计(一)第一章Java语言概述课后习题一、Java语言概述1.Java语言有哪些特点?2.什么叫做类?什么叫做对象?3.简述Java的运行机制。

4.简述Java应用程序的开发流程。

5.当初Sun公司发展Java的原因是:来源:(a)要发展航空仿真软件(b)要发展人工智能软件(c)要发展消费性电子产品6.Java是从哪种语言改进并重新设计?(a)Ade来源:(b)C++(c)Pascal7.Java因为什么快速发展而走红?(a)个人计算机与网络(b)游戏软件(c)系统软件8.Java程序的种类有:(a)内嵌于Web文件中,由浏览器来观看的__________(b)可独立运行的__________考试大论坛(c)服务器端的_________9.Java是面向对象语言,对象是客观事物的,对象与之是一一对应的,它是很具体的概念。

10. 判断:用Javac编译Java源文件后得到代码叫字节码。

()参考答案1.答:面向对象、简单、平台无关性、安全性、内存管理、分布式应用、多线程、动态、解释运行,高效能2.答:在面向对象编程中,具体的客观实体称为对象,对象就是数据加方法。

对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类。

类是对具有相同属性和方法的一组相似对象的抽象,或者说类是对象的模板。

来源:考试大3.答:Java程序的运行必须经过编写、编译、运行三个步骤。

编写是指在Java开发环境中进行程序代码的输入过程,最终形成后缀名为.java源文件。

编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件。

运行是指使用Java解释器将字节码文件翻译成机器代码,在cpu上运行并显示结果的过程。

这一过程如图所示。

考试大-全国最大教育类网站(www.Examda。

com)4.Java应用程序的运行经过编写、编译、运行三个步骤。

java中的输入流与输出流

java中的输入流与输出流

3 标准错误
运行或编译Java程序时,各种错误 信息输出到标准错误设备,即显示器。 在Java中,标准错误设备用System.err表 示 。 System.err 属 于 PrintStream 类 对 象 。
10.3 文件操作
在程序中要对磁盘文件或目录进行操作, 首先要对文件或目录建立连接,为此Java提供 了File类。File类也位于java.io包中,但不是流 类,而是专门用来管理磁盘文件和目录。
OutputStream子类的继承关系
Reader类(字符流)
int read( ) long skip( ) void mark( ) void close( ) void reset( )
Reader类的主要方法
Reader BufferedReader InputStreamReader FileReader
1 建立File对象(三)
File(File dir, String name) 此构造方法中的参数dir表示一个磁盘目录对应 的File对象,参数name表示文件名或目录名。
例如,为文件c:\java\oldfile.txt建立File对象file 可以采用以下语句: File dir1=new File(“c:\\java\\oldfile.txt”) File file1=new(dir1,”oldfile.txt”)
注:使用文件输入流读取文件要处理I/O异常,也可以抛 出异常throw IOException
Java实例—以字节流方式写入文件
import java.io.*; public class File2{ public static void main(String[] args) throws IOException{ char ch; File file1=new File("c:\\jdk1.3\\example\\newFile.txt"); try{ FileOutputStream fout= new FileOutputStream(file1); System.out.println("输入任一字符串,以?结束"); ch= (char) System.in.read(); while (ch !='?'){

java08(第8章输入输出流)-57页文档资料

java08(第8章输入输出流)-57页文档资料

功能
判断文件或目录是否存在 判断是文件还是目录 判断是文件还是目录 返回文件名或目录名 返回文件或目录的路径。 获取文件的长度 将目录中所有文件名保存在字符串 数组中返回。
3、文件及目录操作
File类中还定义了一些对文件或目录进行管 理、操作的方法,常用的方法有: (1)重命名文件
public boolean renameTo( File newFile ); (2)删除文件
2、获取文件及目录属性
一个对应于某磁盘文件或目录的File对 象一经创建, 就可以通过调用它的方法来 获得文件或目录的属性。
获得文件或目录的属性,较常用的方法:
方法名
public boolean exists( ) public boolean isFile( ) public boolean isDirectory( ) public String getName( ) public String getPath( ) public long length( ) public String[ ] list ( )
由于Reader和Writer是抽象类,因此, 在java.io包中定义了许多这二个处理字符流
基本类具体实现输入输出功能的子类,表 8.2为部分常用字符输入流类和字符输出流 子类的功能。
表8.2
部分常用字符输入流类和输出流类的功能
类名
功能
BufferedReader 和BufferedWriter
1、字节文件输入流读取文件
(1)FileInputStream类
FileInputStream类是从InputStream 类中派生出来的输入流类,它用于处理 二进制文件的输入操作。它的构造方法 有下面三种形式: FileInputStream(String filename); FileInputStream(File file); FileInputStream( FileDescriptor fdObj);

Java语言程序设计郑莉第八章课后习题答案

Java语言程序设计郑莉第八章课后习题答案

Java语言程序设计第八章课后习题答案1.进程和线程有何区别,Java是如何实现多线程的。

答:区别:一个程序至少有一个进程,一个进程至少有一个线程;线程的划分尺度小于进程;进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

Java程序一般是继承Thread 类或者实现Runnable接口,从而实现多线程。

2.简述线程的生命周期,重点注意线程阻塞的几种情况,以及如何重回就绪状态。

答:线程的声明周期:新建-就绪-(阻塞)-运行--死亡线程阻塞的情况:休眠、进入对象wait池等待、进入对象lock池等待;休眠时间到回到就绪状态;在wait池中获得notify()进入lock池,然后获得锁棋标进入就绪状态。

3.随便选择两个城市作为预选旅游目标。

实现两个独立的线程分别显示10次城市名,每次显示后休眠一段随机时间(1000毫秒以内),哪个先显示完毕,就决定去哪个城市。

分别用Runnable接口和Thread类实现。

(注:两个类,相同一个测试类)//Runnable接口实现的线程runable类public class runnable implements Runnable {private String city;public runnable() {}public runnable(String city) {this.city = city;}public void run() {for (int i = 0; i < 10; i++) {System.out.println(city);try {//休眠1000毫秒。

Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}}// Thread类实现的线程thread类public class runnable extends Thread {private String city;public runnable() {}public runnable(String city) {this.city = city;}public void run() {for (int i = 0; i < 10; i++) {System.out.println(city);try {//休眠1000毫秒。

《java异常处理》课件

《java异常处理》课件
受检查异常
编译器会强制要求程序员处理这些异常,否则编译会失败 。例如,FileNotFoundException。
运行时异常
运行时异常是那些编译器不会强制要求处理的异常。这些异常通 常表示程序员的某些编程错误,如空指针访问、数组越界等。
异常处理的重要性
提高程序的健壮性
通过适当的异常处理,程序可以 在遇到问题时采取适当的行动, 而不是直接崩溃或出现不可预测 的行为。
泄漏。
避免过度使用try-catch语句 :过多的try-catch语句会使 代码变得复杂和难以维护,
应尽量减少不必要的trycatch语句。
05
Java异常处理案例分析
案例一:网络请求异常处理
总结词
网络请求是常见的异常来源,处理不当可能导致程序崩溃。
详细描述
在网络请求过程中,可能会遇到各种异常,如连接超时、网络断开、服务器无响应等。为了确保程序的健壮性, 需要对这些异常进行捕获和处理,例如重试、提示用户检查网络连接等。
自定义异常
自定义异常
创建自定义异常类
使用自定义异常类
在Java中,可以创建自定义的异常类 来扩展现有的异常类或实现 Exception类。自定义异常类可以包 含更多的信息,以便更好地描述异常 情况。
创建自定义异常类需要继承现有的异 常类或实现Exception类,并添加所 需的成员变量和方法。自定义异常类 可以在需要时扩展更多的信息,如错 误消息、堆栈跟踪等。
使用自定义异常类与使用其他异常类 相同。可以在方法中抛出自定义异常 类实例,并在catch语句块中捕获和处 理它。
04
Java异常处理实践
异常处理的ห้องสมุดไป่ตู้骤
捕获异常
使用try-catch语句捕获异常,将可能 出现异常的代码块放在try语句块中。

JAVA第八章课后习题解答

JAVA第八章课后习题解答
4
sb.append('\n'); }
} catch (Exception e) { e.printStackTrace(); } //显示 System.out.println(sb.toString()); } public void copy(){ try { FileWriter fw=new FileWriter(fileCopy); BufferedWriter bw=new BufferedWriter(fw); //写数据流 bw.write(sb.toString(),0,sb.toString().length()); bw.flush(); } catch (Exception e) { e.printStackTrace(); } } //test public static void main(String[] args){ FileDisplayAndCopy fda=new FileDisplayAndCopy("d:\\a.txt","d:\\b.txt"); fda.display(); fda.copy(); } } 【8】建立一个文本文件,输入一段短文,编写一个程序,统计文件中字符的个数,并将结 果写入另一个文件 [解答]: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; /** * 统计文件中字符的个数,并将结果写入另一个文件 */ public class FileCharCounter {
数据可以是未经加工的原始二进制数据也可以是经一定编码处理后符合某种格式规定的特定数据java据流有字节流和字符流之分

Java第八章输入输出流11

Java第八章输入输出流11

for(int i=0;i<count;i++){ System.out.print(" “ + buffer[i] ); }
System.out.println(); for(int i=0;i<count;i++){ System.out.print( (char) buffer[i] ); } String s=new String(buffer); System.out.println(s); System.out.println(count);
InputFrom 内存 File.java FileInputStream
try{
FileInputStream rf=new FileInputStream("InputFromFile.java"); int n=512; byte buffer[]=new byte[n]; while((rf.read(buffer,0,n)!=-1)&&(n>0)){ System.out.println(new String(buffer) ); } System.out.println(); rf.close(); } catch(IOException IOe){ System.out.println(IOe.toString()); }
标准输入流System.in.read(byte []b)
byte [] buffer=new byte[512]; System.out.println("please Input:"); int count=System.in.read(buffer); System.out.println("Output:");

第八章 输入输出和异常

第八章 输入输出和异常
8-1
第八章
Programming in Java
8-2
异常处理
在进行程序设计时,错误的产生是不可避免的。所谓 错误,是在程序运行过程中发生的异常事件,这些事 件的发生将阻止程序的正常运行 如何处理错误?把错误交给谁去处理?程序又该如何 从错误中恢复? 为了加强程序的鲁棒性,Java语言具有特定的运行错 误处理机制异 异常又称为例外,是特殊的运行错误对象 是面向对象规范的一部分,是异常类的对象 Java中声明了很多异常类,每个异常类都代表了一种 运行错误,类中包含了该运行错误的信息和处理错误 的方法 每当Java程序运行过程中发生一个可识别的运行错误 时,即该错误有一个异常类与之相对应时,系统都会 产生一个相应的该异常类的对象,即产生一个异常
Programming in Java
无异常时finally执行
8-16
• public class sample6_9 {
• public static void main(String[] args)

{try

{ int[] a=new int[4];

System.out.println("整型数组创建完毕!!");
如果try块中某条语句存在异常. 则跳到相对应的catch块中.执行 完该catch块中的语句.然后跳过 其它的catch块.接着往下走.
这里出现的错误类型是:空引 用!! 主程序正常结束!!!
Programming in Java
8-15
2. Finally子句
• Try{} • Catch{} • Fianally{}//无论何种情况都执行 • 注意事项: • 1 无 catch时finally必须紧跟try • 2 catch与 finally 不能同时省 • 3 try catch及 finally 块之间不能有任何代码

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

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

将File类中的主要方法按如下方式分类: (1) 文件名的处理: String getName():得到一个文件的名称(不包括路径)。 String getParent():得到一个文件的上一级目录名。 String getPath():得到一个文件的路径名。 String getAbsolutePath():得到一个文件的绝对路径名。 String renameTo(File newName):将当前文件名更名为给 定文件的完整路径。
【例8-3】 使用FileInputStream类打开并读取文件 Example8_3.Java。
import java.io.*; public class Example8_3 {
public static void main(String args[]) {
try{ //创建文件输入流对象
FileInputStream in = new FileInputStream("Example8_3.Java"); int n=2; byte buffer[] = new byte[n]; //读取输入流 while (in.read(buffer,0,n)!=-1){ String str=new String(buffer,0,n); System.out.print(str); } System.out.println(); //关闭输入流 in.close();
字节输入流类InputStream的类层次如图8.5所示。
图8.5 InputStream类层次
2. OutputStream类 字节输出流类OutputStream的主要方法描述如下: (1) public abstract void write(int b):将指定的字节写入此 输出流,要写入的字节是参数b的八个低位。 (2) public void write(byte[] b):将b.length个字节从指定的 byte数组写入此输出流。 (3) public void write(byte[] b, int off, int len):将指定的byte 数组中从偏移量off 开始的len个字节写入此输出流。 (4) public void flush():刷新此输出流并强制写出所有缓 冲的输出字节。 (5) public void close():关闭此输出流并释放与此流有关 的所有系统资源。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13.答:所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流。数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列。
流式输入输出的特点是数据的获取和发送沿数据序列的顺序进行,即每一个数据都必须等待排在它前面的数据,等前面的数据读入或送出之后才能被读写。所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置。
3.为什么异常处理技术不应该用于常规的程序控制?
4.引起异常产生的条件是什么?
5.异常没有被捕获将会发生什么?
6.编写一个程序,以说明catch(Exception e)如何捕获各种异常。
7.下面的代码段中finally语句块会被执行吗?
public class ExceptionExam3
{
try
{
throw new Excp2();
}
catch(Excp2 e)
{
System.out.println("catch1");
throw new Excp1();
}
catch(Excp1 e)
{
System.out.println("catch2");
FileOutputStream fos=new FileOutputStream(file2);
finally
{System.out.println("Finally");}
}
}
8.throws的作用是什么?
9.应在程序的什么地方使用异常处理?
10.下面的代码有什么错误吗?
class ExceptionExam{…}
throw new ExceptionExam();
{
public static void main(String [] args)
{
try
{
int i=0;
i=3/i;//将产生算术异常。
}
catch(ArithmeticException e)//找到了匹配的异常,执行该catch块。
{
常用方法有:
(1)public boolean canWrite( ):返回文件是否可写。
(2)public boolean canRead( ):返回文件是否可读。
(3)public boolean createNewFile( ):当文件不存在时创建文件。
16.
import java.io.*;
(2)public File(String parent , String child):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。
(3)public File(File parent, String child):该构造函数与上面一个不同在于将parent的参数类型由String变为File,代表parent是一个已经创建的File类文件对象(指向目录)。
class CopyFile{
public static void main(String[] args) {
String file1,file2 ;
int ch = 0 ;
try {
file1=args[0];
file2=args[1];
File无效Stream fis = new File无效Stream(file1);
12.根据所给创建自定义异常类的使用格式,编写一个自定义异常的小程序。
13.什么叫流?流式输入输出有什么特点?
14.Java流被分为字节流、字符流两大流类,两者有什么区别?
15.File类有哪些构造函数和常用方法?
16.利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过命令行参数传入。
3.答:a. 异常处理用于不经常发生但通常导致程序终止的情况,因此要求编程人员为编译器的优化执行实现异常处理。b. 常规控制结构的控制流程通常比异常的更为清晰、交流更高。c. 在发生异常,并且没有释放异常发生之前分配的资源时,堆栈是展开的,所以会出现一些问题。d.“额外的”异常会妨碍真正错误类型的异常。这种使程序员更难 以跟踪大量的异常。
8.答:在某些情况下,如果一个方法产生自己不处理或无法处理的异常,它就必须在throws子句中声明该异常。
9.答:通常,可以采用两种方式来报告错误:返回值和异常。在Java中异常处理很常用,虽然返回错误代码在某些情况下是一种有效的方式,但是异常处理可以提供强大的结构化方法来处理异常。所以需要处理代码中的错误时就可以采用异常的方法进行处理。
4.答:异常产生的方式有3种。第一种是在某些内部错误时,Java虚拟机可以产生异常,该异常不在你的程序控制范围内,通常不作处理。第二种是由程序代码中的错误引起,这种异常需要你的程序处理。第三种是通过使用throw语句手动生成的异常。
5.答:未捕获的异常最终会导致程序非正常终止。
6.public class ExceptionExam
20.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中。采集者退散
21.编写一个程序,从键盘输入10个整数,并将这些数据排序后在标准输出上输出。
参考答案
1.答:内存耗尽、数组下标超出边界、被0除、非法的方法参数、算法溢出处。来源:考试大的美女编辑们
2.答:(1)Java通过面向对象的方法进行异常处理,把各种异常事件进行分类,体现了良好的层次性,提供了良好的接口,这种机制对于具有动态特 性的复杂提供了强有力的控制方式。(2)Java的异常处理机制使得处理异常的代码和“常规”代码分开,减少了代码的数量,增强了程序的可读性。(3) Java的异常处理机制使得异常事件可以沿调用栈自动向上传播,而不是C语言中通过函数的返回值来传播,这样可以传递更多的信息,并且简化了代码的编写。 (4)由于把事件当成事件处理,利用类的层次性我们可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。
11.异常类型匹配的处理方式。程序功能:首先输出“这是一个异常处理的例子”,然后在你程序中主动地产生一个 ArithmeticException 类型被0 除而产生的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException类的对象e的方法getMessage 给出异常的具体类型并显示出来。
throw new Exception();
}
catch(Exception e)
{
System.out.println("catch3"); } Leabharlann finally {
System.out.println("finally");
}
}
}
说明:自定义异常类,关键是选择继承的超类——必须是Exception或者其子类。用异常代表错误,而不要再使用方法返回值。
{
public static void main(String [] args)
{
try
{
int [] a=new int[3];
System.exit(0);
}
catch(ArrayIndexOutOfBoundsException e)
{System.out.println("发生了异常");}
}
}
}
注意:如果在catch 语句中声明的异常类是Exception,catch 语句也能正确地捕获,这是因为Exception 是ArithmeticException 的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch的参数为Exception,即说明异常的类型为Exception。
14.答:两者都作为Object类的直接子类,基本输入流(无效Stream)和基本输出流(OutputStream)是处理以8位字节为基本单位的字节流类;Reader和Writer类是专门处理16位字符流的类。
15.答:构造函数有:
(1)public File(String pathname):创建一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。如果没有文件名,则代表目录。
(/club/5346389)欢迎加入...欢迎交流...止不住的惊喜等着你.........
自考Java语言程序设计(一)第八章Java异常处理及输入输出流简介课后习题
八、Java异常处理及输入输出流简介
1.列出5个常见的异常。
2.写出Java语言的异常处理机制的优点。
12.
class Excp1 extends Exception
{}
class Excp2 extends Excp1
{}
public class ExceptionExam7
{
public static void main(String [] args) throws Exception
17.编写一个程序,在当前目录下创建一个子目录test,在这个新创建的子目录下创建一个文件,并把这个文件设置成只读。
18.位置指针的作用是什么?RandomAccessFile类提供了哪些方法实现对指针的控制?
19.编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数。
{
System.out.println("发生了AarryIndexOutOfBoundsException异常");
相关文档
最新文档