《Java异常处理与输入输出.ppt》由会员分享,可在线阅读,更多相关《Java异常处理与输入输出.ppt(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 第六章 Java异常处理、IO李莉 1.Java异常处理 2.Java输入输出public class Temp public static void main(String args)String a=Hello,Java,World,!;for(int i=0;i0)b=new bytei;fin.read(bb);System.out.println(new String(b);fin.close();catch(IOException e)System.out.println(file.txt read over);System.out.println(program over);通
2、常用FileReader,而不用FileInputStream2.Java输入输出InputStream子类FilterInputStream(InputStream in)过滤输入字节流(以另一个输入流in为数据源):在输入数据的同时能对所传输的数据进行指定类型或格式的转换,可实现对二进制字节数据的理解和编码转换。BufferedInputStream(InputStream in)缓冲输入字节流:增加了缓冲区,支持了mark和reset方法,提高了输入效率;DataInputStream(InputStream in)数据输入字节流:带格式的读操作,可以读取不同类型数据,如readByte
3、(),readBoolean(),readShort(),readInt(),readChar()等。2.Java输入输出OutputStream子类ByteArrayOutputStream字节数组输出流FileOutputStream 文件输出字节流FilterOutputStream 过滤输出流DataOutputStream 数据输出流PrintStream 打印输出流void print(boolean b):打印布尔值。void print(char c):打印字符。void print(char s):打印字符数组。void print(double d):打印双精度浮点数。vo
4、id print(float f):打印浮点数。void print(int i):打印整数。void print(long l):打印 long 整数。void print(Object obj):打印对象。void print(String s):打印字符串。void println()();2.Java输入输出Reader子类Reader:以字符为单位的输入流2.Java输入输出Reader子类CharArrayReader(char buf):字符数组输入流以字符数组buf为输入数据源StringReader(String s):字符串输入流以字符串s为输入源InputStreamRe
5、ader(InputStream in):字符输入流将字节流in转换为字符流BufferedReader(Reader in):缓冲字符输入流以字符流in为输入数据源,加入缓冲功能快速高效 readLine();read(char cbuf,int off,int len)import java.io.*;public class Temp public static void main(String args)BufferedReader in;in=new BufferedReader(new InputStreamReader(System.in);try in.mark(30);Str
6、ing ss=in.readLine();System.out.println(Your input:+ss);in.reset();ss=in.readLine();System.out.println(Again input:+ss);in.close();catch(IOException e)e.printStackTrace();2.Java输入输出Reader子类FileReader(String fileName):文件字符输入流从fileName指定的字符文件中读入数据。import java.io.*;public class Temp public static void
7、main(String args)BufferedReader in;String ss;try in=new BufferedReader(new FileReader(infile.txt);ss=in.readLine();while(ss!=null)System.out.println(Read a line:+ss);ss=in.readLine();in.close();catch(IOException e)e.printStackTrace();2.Java输入输出Writer子类Writer:以字符为单位的输出流2.Java输入输出Writer子类CharArrayWrit
8、er():字符数组输出流输出流的目的地为无名数组PrintWriter(OutStream out)或PrintWriter(Writer out)实现各种类型数据的打印输出,输出目的地为out对象。print(boolean b);print(char c);print(String s);println()按照平台的默认字符编码将 String.valueOf(boolean)生成的字符串转换为字节,并完全以 write(int)方法的方式写入这些字节。OutputStreamWriter(OutputStream out):字符输出流将字节流out转换为字符流输出BufferedWrit
9、er(Writer out):缓冲字符输出流以字符流out为输出目的地,加入缓冲功能快速高效 write(char cbuf,int off,int len);write(int c);write(String s,int off,int len);newLine()2.Java输入输出Writer子类FileWriter(String fileName)或FileWriter(File file):文件字符输出流向file或fileName指定的字符文件中输出数据。import java.io.*;public class Temp public static void main(Strin
10、g args)PrintWriter out;try out=new PrintWriter(new FileWriter(out.txt,true);out.println(output data);out.println(3.1415926);out.close();catch(IOException e)e.printStackTrace();import java.io.*;public class Temp public static void main(String args)BufferedWriter out;try out=new BufferedWriter(new Fil
11、eWriter(out.txt,true);out.write(output data2);out.newLine();out.write(65);/只能输出字符串、字符数组和int值(表示char)out.close();catch(IOException e)e.printStackTrace();2.Java输入输出标准输入输出计算机通常有默认的标准输入设备(键盘)和标准输出设备(显示器)。Java程序与系统标准输入输出间进行数据通信(从键盘读入数据,或向屏幕输出数据)是频繁使用的操 作,为 此 Java定 义 了 流 对 象 System.in和System.out,分别与系统的标准输
12、入和标准输出相联系。in和out是系统类System的静态属性。2.Java输入输出标准输入输出标准输入System.in:InputStream类的对象。当程序中需要从键盘读入数据的时候,调用System.in的read()方法即可。使用()方法读入数据:()语句必须包含在try/catch块中,接收IOException异常。执行()方法将从键盘缓冲区读入1字节的数据,返回的却是2字节的整型量,这个整型量的低位字节是真正输入的数据,其高位字节是全零。作为InputStream类的对象,System.in只能从键盘读取二进制的数据,不能把这些比特信息转换为整数、字符、浮点数或字符串等复杂数据
13、类型的量。try char ch=();catch(IOException e)2.Java输入输出标准输入输出当键盘缓冲区中没有数据时,执行()将导致系统转入阻塞(block)状态。在阻塞状态下,当前流程将停留在上述语句位置且整个程序被挂起,等待用户从键盘输入一个数据后,才能继续运行下去。System.out.println(“Press any key to finish the program”);trychar test=();catch(IOException e)System.out.println(program finished);2.Java输入输出标准输入输出Java的标准
14、输出System.out:PrintStream类的对象。PrintStream定义了向屏幕输送不同类型数据的方法print()和println()。npublic void println(数据类型 变量或对象);npublic void print(数据类型 变量或对象);import java.io.*;public class Temp BufferedReader br;public static void main(String args)try br=new BufferedReader(new InputStreamReader(System.in);System.out.pr
15、int(请输入一个整数:);int i=Integer.parseInt(br.readLine();System.out.print(您输入的整数是+i);catch(IOException e)System.err.println(e.toString();总结:通常输入输出类进行IO操作的步骤:(1)声明输入输出类的引用变量;(2)创建输入输出类的对象,使输入输出类对象与特定的外设进行连接;(3)调用输入输出类对象的read/write/print等方法,实现输入输出操作;(4)操作完毕之后,关闭输入输出流。(5)注意:创建对象、IO、关闭流时都可能产生异常,应该放到try/catch块中,来处理可能发生的异常情况。