还剩40页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Java网络编程期末复习题I/O、多线程、网络编程、数据库操作
一、单选题
1、下列关于Java线程的说法那些是正确的A、每一个Java线程可以看成由代码、一个真实的CPU以与数据三部份组成B、创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题C、Thread类属于java.util程序包D、以上说法无一正确
2、运行下列程序,会产生什么结果?publicclassXextendsThreadimplementsRunable{publicvoidrun{System.out.printinthisisrun;}publicstaticvoidmainStringargs[]{Threadt=newThreadnewX;t.startQ;}A、第一行会产生编译错误B、第六行会产生编译错误C、第六行会产生运行错误
7、字符输入流BufferedReader运用了—技术Printstream
8、InputStreamReader负责将Inputstream转化成Reader而OutputStrearnWriter贝ij将Outputstream转化成Writero事实上是通过byte[]和String来关联
9、设a.txt为当前书目下的一个文本文件,则以字符方式向该文件写数据时,须要建立的输出流通道为newa.txt;.随机访问文件类是RandomAccessFile它实现了与DatalnputStreamDataOutputStream类同样实现的接口DatalnputDataOutput..实现多线程的两种方式是
1、继承Thread类;
2、实现Runnable接口
12、取得当前线程的语句是Thread.currentThread;.主线程的名称是main默认创建的第一个子线程的名称是thread-
0.可以调用Thread类的方法getPriority和setPriority来存取线程的优先级,线程的优先级界于1MINPRIORITY和10MAXPRIORITY之间缺省是5NORM_PRIORITY.1当多个线程同时运行时,会产生数据错误与其它冲突问题Java语言供应了线程同步限制机制,一是锁定共享资源,使得在任何时刻只有一个线程能够访问共享资源,以保持共享资源的完整和一样,二是让相互通信的线程运行,以保证通信的正确性2线程之间的通信有两种方法一是把共享变量和方法封闭在一个类拆访问的方法是在方法声明中加入synchronized关键字来声明一个访问共享资源的方法,或者通过synchronized关键字来声明synchronized
16、守护线程一般被用于在后台为其它线程供应服务调用方法isDaemon来推断一个线程是否是守护线程也可以调用方法setDaemon将一个线程设为守护线程
17、InetAddress是用于封装IP地址和DNS的一个类
18、TCP/IP套接字是最牢靠的双向流协议等待客户端的服务器运用ServerSocket类而要连接到服务器的客户端则运用区如美
19、java.net包中供应了一个类MulticastSocket允许数据报以广播方式发送到该端口的全部客户o
20.在TCP/IP协议的传输层除了TCP协议之外还有一个UDP协议几个标准的应用层协议HTTP…运用的都是TCP协议UDP协议主要用于须要很强的实时交互性的场合,如网络游戏,视频会议等
21、当我们得到一个URL对象后,就可以通过它读取指定的WWW资源这时我们将运用URL的方法openStream其定义为:InputStreamopenStrearn;
22、URL的构造方法都声明抛弃非运行时异样MalformedURLException因此生成URL对象时,我们必需要对这一例外进行处理,通常是用try-catch语句进行捕获
23、一个Statement对象可以执行多个sql语句以后,批量更新这多个语句可以是delete、update、insert等或兼有
24、Java数据库操作基本流程取得数据库连接、执行sql语句、处理执行结果、释放数据库连接
25、下列程序的功能是在监控台上每隔一秒钟显示一个字符串“Hello”,能够填写在程序中下划线位置,使程序完整并能正确运行的语句是publicclassTestimplementsRunnable{publicstaticvoidmainfStringargs[]{Testt=newTestQ;Threadtt=newThreadt;publicvoidrun{try{}catchSystem.put.printin”HelloH;InterruptedException
三、简答与程序分析、填空、设计题第一部分简答
1、线程的生命期内包括哪些状态?答新建状态、就绪状态、运行状态、堵塞状态、死亡状态见下图各状态之间的切换关系
2、什么是线程的新建状态?答线程对象已经创建,还没有在其上调用start方法
3、什么是线程的可运行状态?答当线程有资格运行,但调度程序还没有把它选定为运行线程时线程所处的状态当start方法调用时,线程首先进入可运行状态在线程运行之后或者从堵塞、等待或睡眠状态回来后,也返回到可运行状态
4、什么是线程的死亡态答当线程的run方法完成时就认为它死去这个线程对象或许是活的,但是,它已经不是一个单独执行的线程线程一旦死亡,就不能复假如在一个死去的线程上调用start方法,会抛出java.lang.IllegalThreadStateException异样
5、调用join方法有何作用?答保证当前线程停止执行,直到该线程所加入的线程完成为止然而,假如它加入的线程没有存活,则当前线程不须要停止
6.现有字符串S=hellojava!”,则以此字符串生成待发送DatagramPacket包dgp的语句是答Byte[]str=s.getbytes;DatagramPacketdgp=newDatagramPacketstrstr」ength目的主机,目的端口;
7、介绍运用用vaSocket创建客户端Socket的过程答try{Socketsocket=newSocket目标主机目标端口;}catchIOExceptione{System.out.printinError:n+e;
8、介绍运用javaServerSocket创建服务器端ServerSocket的过程答ServerSocketserver=null;try{server=newServerSocket监听端口;}catchIOExceptione{System.out.printinHcannotlistento:n+e;Socketsocket=null;try{socket=server.acceptQ;}catchIOExceptione{System.out.printlnnError:n+e;
9、写出一种运用java流式套接式编程时,创建双方通信通道的语句答BufferedOutputStreemsocket.getOutputStream;DataInputStreamsocket.getInputStream;PrintWriterout=newPrintWritersocket.getOutStreamftrue;InputSteramReaderSocket.getInputStream;
10、对于建立功能齐全的Socket其工作过程包含以下四个基本的步骤:1创建Socket;2打开连接到Socket的输入/出流;3依据确定的协议对Socket进行读/写操作;4关闭Socket.
11、简述基于TCP与UDP套接字通信的主要区分答TCP牢靠,传输大小无限制,但是须要连接建立时间,差错限制开销大UDP不行靠,差错限制开销较小,传输大小限制在64K以下不须要建立连接
12、写出DatagramSocket的常用构造方法答DatagramSocket;DatagramSocketintprot;DatagramSocketfintportInetAddressladdrport指明socket所运用的端口号,假如未指明端口号,则把socket连接到本地主机上一个可用的端口laddr指明一个可用的本地地址
13、介绍一下DatagramPacket的常用构造方法DatagramPacketbytebuf[]intlength;DatagramPacketbytebuf[]intlengthInetAddressaddrintport;DatagramPacketbyte[]butintoffsetintlength;DatagramPacketbyte[]bufintoffsetintlengthInetAddressaddressintport;其中,buf中存放数据报数据,length为数据报中数据的长度,addr和port旨明目的地址,offset指明白数据报的位移量
14、在接收端接收数据报的主要语句答bytebuf[]=newbyte[n];DatagramPacketpacket=newDatagramPacketfbufn;Socket.receivepacket;
15、写出java程序中用Statement来执行sql查询与更新语句Stringsql;//表示查询或更新的操作语句;Statementsm=cn.createStatement;//cn表示数据库连接sm.executeQuerysql;//执行数据查询语句selectsm.executeUpdatesql;//执行数据更新语句delete、update、insert、drop等statement.close;什么叫流?流式输入输出有什么特点?Java流被分为字节流、字符流两大流类,两者有什么区分File类有哪些构造函数和常用方法应以所谓流是指同一台计算机或网络中不同计算机之间有序运动着的数据序列,Java把这些不同来源和目标的数据都统一抽象为数据流数据流可分为输入流和输出流,输入流代表从其他设备流入计算机的数据序列,输出流代表从计算机流向外部设备的数据序列流式输入输出的特点是数据的获得和发送沿数据序列的依次进行,即每一个数据都必需等待排在它前面的数据,等前面的数据读入或送出之后才能被读写所以流和队列一样,只能以“先进先出”的方式对其中的数据进行读写,而不能随意选择读写的位置.答两者都作为Object类的干脆子类,基本输入流InputStream和基本输出流OutputStream是处理以8位字节为基本单位的字节流类;Reader和Writer类是特地处理16位字符流的类.答构造函数有publicpathname:创建一个对应于参数pathname的File类对象参数pathname是包含书目和文件名的字符串假如没有文件名则代表书目publicparentStringchild:该构造函数将pathname分成两部分parent和child参数parent表示书目或文件所在路径,参数child表示书目或文件名称publicparentStringchild:该构造函数与上面一个不同在于将parent的参数类型由String变为File代表parent是一个已经创建的File类文件对象指向书目常用方法有publicbooleancanWrite:返回文件是否可写publicbooleancanReadf:返回文件是否可读publicbooleancreateNewFilef:当文件不存在时创建文件
19.位置指针的作用是什么?RandomAccessFile类供应了哪些方法实现对指针的限制?
19.答要实现对文件的随机读取,也就是在文件的任何位置执行读写数据的操作,须要一个指针来指定读写的位置在创建RandomAccessFile类对象的同时,系统自动创建了一个指向这个文件开头的指针,当执行读写操作后,指针自动指向被读写数据之后的第一个字节处指针初始值是0每读/写一个字节,指针自动增加1RandomAccessFile类供应了一些限制指针移动的方法publiclongget;获得当前指针指向文件的位置pulbicvoidseekflongpos;将指针移动到参数pos指定的位置publicintskipBytesfintn;指针从当前位置向后移动n个字节位置,并返回指针实际移动的字节数其次部分分析程序功能或完成程序
2、利用文件输入输出流编写一个实现文件拷贝的程序,源文件名和目标文件名通过叮嘱行参数传入答D、程序会运行和启动
3、下列选项中,用于定义接口的关键字是A、importB、implementsC、interfaceD、protected
4.定义类头时能运用的修饰符是oAprivateBstaticCabstractDprotected
5、下面哪个方法不行以在任何时候被任何线程调用?A、waitB、sleepfC、yieldfD、synchronizedthis.下列关于线程优先级的说法中,正确的是A线程的优先级是不能变更的B线程的优先级是在创建线程时设置的C在创建线程后的任何时候都可以设置DB和C.线程生命周期中正确的状态是A新建状态、运行状态和终止状态importjava.io.*;classCopyFile{publicstaticvoidmainString[]args{String;intch=0;try
[0];
[1];fis=newfilel;fos=newfile2;whilech=fis.read!=-lfos.writech;fis.closef;fos.closef;catche{源文件沫找到!;}catchArrayIndexOutOfBoundsExceptione{缺少运行参数!;Systemexit-l;System.out.printine.toStringf;
4、编写一个程序,从键盘输入一串字符,统计这串字符中英文字母、数字、其他符号的字符数.答importjava.io.*;publicclassCount{publicstaticvoidmainString[]args{intx=Oy=Oz=O;intch;trywhilech=System.in.read!=\r{ifch=Ach=Z||ch=a8ch=zx++;elseifch=Ochv=9y++;elsez++;}catchIOExceptione{System.out.printlne.toStringO;}英文字母H+x;数字字符:+y;其它字符n+z;}}.编写一个程序,从键盘输入一串字符,从屏幕输出并将其存入a.txt文件中.答importjava.io.*;publicclassInFile{publicstaticvoidmainString[]args]intch;tryout=newa.txt;whilech=System.in.read!=\r{System.out.writech;out.writech;out.close;Systemoutwrite*\n*;}catchIOExceptione{System.out.printlne.toStringO;输出至文件完毕!叱}
8、下列程序向屏幕输出文本文件内容请完成所缺少的代码importjava.io.*;classreadtxtpublicstaticvoidmainString[]args{tryfl=newHu.txtf;BufferedReaderbfl=newBufferedReaderf1;Stringline;line=bfl.readLinef;whileline!=nuW//推断所读的一行内容是否为空;System.out.printinline;line=bfl.readLine;//接着读入下一行}bfl.close;//关闭文件的输入流;}catchIOExceptione{e.printStackTraceQ;}}}
1、请编写java程序,访问所在的主页文件答:publicclassURLReader{publicstaticvoidmainString[]argsthrowsException{/声明抛出全部例外URLtire=newURL;//构建一URL对象BufferedReaderin=newBufferedReadernewInputStreamReadertirc・openStream;//运用openStream得到一输入流并由此构造一个BufferedReader对象StringinputLine;whileinputLine=in.readLine!=null//从输入流不断的读数据,直到读完为止System.out.printlninputLine;//把读入的数据打印到屏幕in.close;//关闭输入流
11、从键盘上输入主机名称,编写类似ping的程序,测试连接效果importjava.net.*;importjava.io.*;classPing{publicstaticvoidmainString[]args请输入ping主机名称或地址\n;try{Stringhost=keyreadlinef;InetAddressip=InetAddress.getByNamehost;longtl=SystenLcurrentTimeMillisO;ifip.isReachable5000{longt2=System.correntTimeMillis;System.out.printinH\nReplyfrom+ip.getHostAddress+time=H+t2-tl+HmsH;System.out.printin;}else{System.out.printinnRequesttimedout.;}{System.out.printlnnRequesttimedout.;}privatestaticStringkeyreadline{BufferedReaderbr=newBufferedReadernewInputStreamReaderSystem.in;Stringstr=null;trystr=br.readLinef;}catchlOExceptione{e.printStackTraceQ;}returnstr;}
12、设服务器端程序监听端口为8629当收到客户端信息后,首先推断是否是“BYE”,若是,则立刻向对方发送“BYE”,然后关闭监听,结束程序若不是,则在屏幕上输出收到的信息,并由键盘上输入发送到对方的应答信息请编写程序完成此功能mportjava.net/;importjava.io.*;classServer{publicServer{try{ServerSocketss=newSvrverSocket8629;服务器端已运行,等待客户端连接;Socketsocket=ss.accept;//接收客户端的连接请求;BufferedReaderin=newBufferedReadernewInputStreamReadersocket.getInputStream;PrintWriterout=newPrintWritersockvt・getOutputStreamtrue;BufferedReaderbr=newBufferedReaderfnewInputStreamReaderSystem.in;Stringline;whiletrue{line=in.readLine.trim;ifQine.equals”BYE{out.printlnHBYEH;out.closeQ;in.closed;socket.closef;br.closeQ;ss.closed;break;}客户输入为:“+line;请输入回答:;line=br.readLine;//从键盘上输入信息;out.printlnline;//向对方发送信息}}catchlOExceptione{}}publicstaticvoidmainString[]argsthrowsExceptionnewServerQ;
13、TCP客户端须要向服务器端8629发出连接请求,与服务器进行信息沟通,当收到服务器发来的是“BYE”时,立刻向对方发送“BYE”,然后关闭连接,否则,接着向服务器发送信息importjava.io.*;importjava.net/;classClient2{publicClient2{try{Strings;Socketsocket=newSocket“月艮务器地址*8629;InputStreamReadeisocket.getInputStream;PrintWriterout=newPrintWritersockvt.getOutputStreamtrue;BufferedReaderline=newBufferedReaderfnewInputStreamReaderSystem.in;whiletrue请向服务器输出一条字符串;s=line.readLine;out.printlns;〃向服务器发出信息;s=in.readLine.trim;//收到服务器发来的信息;System.out.println服务器返回的信息是;System.out.printlns;ifs.equalsBYEn{out.printlnBYE;line.closef;out.closed;in.closed;socket.closed;break;}}B新建状态、运行状态、堵塞状态和终止状态C新建状态、可运行状态、运行状态、堵塞状态和终止状态D新建状态、可运行状态、运行状态、复原状态和终止状态
8.Thread类中能运行线程体的方法是AstartfBresumefCinitDrun9在程序读入字符文件时,能够以该文件作为干脆参数的类是ABBufferedReaderCDObjectlnputStream10java.io包的File类是A字符流类B字节流类C对象流类D非流类11下列描述中,正确的是A在Serializable接口中定义了抽象方法B在Serializable接口中定义了常量C在Serializable接口中没有定义抽象方法,也没有定义常量D在Serializable接口中定义了成员方法.java中用于创建文件对象的类是A.FileB.ObjectC.ThreadD.Frame.从键盘上输入一个字符串创建文件对象,若要推断该文件对象为书目文件或数据文件,可运用下列哪个方法?A.getPathB.getNameC.isFileQD.isAbsolutepublicstaticvoidmainString[]args{newClient2;}
14、UDP接收端importjava.io.*;importjava.net.*;classServer{publicstaticvoidmainString[]args{newUDPServerf;}}classUDPServer{publicUDPServer{tryDatagramSocketsocket=newDatagramSocketf1986;//建立一个Socket连接System.out.printlnH服务器IP+InetAddress.getLocalHost.getHostAddress;//显示月艮务器信息whiletrue{//接收byte[]instr=newbyte
[200];DatagramPacketreceive=newDatagramPacketinstrinstrlength;socketieceivereceive;〃接收客户机发过来的数据Stringstr=newStringreceive.getData;//提取数据ifstr.trim.equalsHBYEH{socket.closef;break;}收到客户端消息+str.trim;//打印客户机消息//发送服务器发送消息;str=newBufferedReaderfnewInputStreamReaderSystem.in.readLine;//得至!输入的数据byte[]outstr=newbyte[str.length];outstr=str.getBytesQ;DatagramPacketsend=newDatagramPacketoutstroutstr』engthreceive.getAddressreceive.getPort;//向客户机发送数据socket.sendsend;//执行发送}}catchExceptione{//错误处理//e.printStackTrace;
15、UDP发送端importjava.io.*;importjava.net.*;classClient{publicstaticvoidmainString[]args{newUDPClientO;}}classUDPClient{publicUDPClient{请输入服务器的地址;Stringserverip=null;tryserverip=newInputStreamReaderSystem.in.readLinef;地址}catchlOExceptionel{//错误处理//el.printStackTrace;tryDatagramSocketsocket=newDatagramSocket;〃建立Socketwhiletrue{//发送客户端发送消息:;Stringsend=newBufferedReadernewInputStreamReaderSystem.in.readLine;//读入客户机输入的消息byte[]outstr=newbyte[send.1ength];outstr=send.getBytesf;InetAddressaddress=InetAddress.getByNameservsrip;DatagramPacketpacket=newDatagramPacketoutstroutstr.lengthaddress1986;//向服务器发送数据报socket.sendpacket;//发送数据报//接收byte[]instr=newbyte
[200];packet=newDatagramPacketfinstrinstr.length;//接收数据socket.receivepacket;//接收数据Stringout=newStringpacket.getDataf;//取出信息ifout.trim.equalsnBYE!{socket.close;break;}System.out.println收到服务器消息+out.trim;〃打印服务器发过来的信息}catchExceptione{//错误处理//e.printStackTrace;
16、设access数据库中有student表,表中存放学生学号,姓名两个字段,请编写程序输出表中全部记录信息(假定已经配置好数据源为mydb11)importjava.sql.*;classaccess{publicstaticvoidmainfStringargs[]){Connectioncon;Statementsql;//声明Statement对象ResultSetrs;tryClass.forNamesun.jdbc・odbc.JdbcOdbcDriver;catchfClassNotFoundExceptione{System.out.printinnn+e;trycon=DriverManager.getComiectionndbc:odbc:mydb1Lsql=con.createStatement;rs=sql.executeQuerySelect*FROMmytable”;whilerSeiiextO{Stringnum=rs.getStringl;〃获得数据库第一列Stringname=rs.getString2;学号:+num;//输出信息System.out.printH姓名:”+name;System.out.printin;con.closeQ;}catchSQLExceptionel{}.下列哪个类不对干脆创建对象?A・InputstreamB.C.BufferedlnputStrearnD.DatalnputStream.从键盘上输入多个字符时,为了避开回车换行符的影响,须要运用下列哪个流方法?A.writefB.flushC.closefD.skip.以对象为单位把某个对象写入文件,则须要运用什么方法?A.writelntBwriteObjectC.writeD.writUTF.下列哪个类的方法能够干脆把简洁数据类型写入文件?A•OutputstreamB.BufferedWriterC.ObjectOutputStream.D..若一个类对象能被整体写入文件,则定义该类时必需实现下列哪个接口?A.RunnableB.ActionListenerC.WindowsAdapterD.Serializable.下列哪种类型的数据能以对象的形式写入文件?A.StringB.FrameC.DialogD.Button.File类的方法中,用于列举某书目下的子书目与文件的方法是A.longlengthfB.longlastModifiedC.String[]listD.StringgetNamef.能够以字符串为单位写入文件数据的流类是A.B.C.BufferedWriterC.Outputstream.能够向文件输入逻辑型数据的类是()A.B.OutputstreamC.D.DataOutputStream.在线程同步中,为了唤醒另一个等待的线程,运用下列方法()A.sleepQB.wait()Cnotify!)D.join().为了得到当前正在运行的线程,可运用下列哪个方法?()A.getName()B.Thread.CurrentThreadQ.B.sleepQD.run().以下()不属于线程的状态A.就绪状态Bo运行状态Co挂起状态Do独占状态.当线程被创建后,其所处的状态是()A.堵塞状态Bo运行状态C、就绪状态D、新建状态.当线程调用start后,其所处状态为()A.堵塞状态Bo运行状态C、就绪状态D、新建状态.Thread.sleep()方法调用后,当等待时间未到,该线程所处状态为()A.堵塞状态Bo运行状态C、就绪状态D、新建状态.新生状态的线程其可能干脆进入的状态是()A.堵塞状态B、运行状态C、新建状态D、结束状态.Thread.sleep()方法调用后,当等待时间已到,该线程所处状态为()A.堵塞状态Bo运行状态C、就绪状态D、新建状态.当线程因异样而退出run后,其所处状态为()A.堵塞状态Bo运行状态C、就绪状态D、结束状态32•wait方法首先是哪个类的方法?()A.ObjectB.Thread.C.RunnableD.File.假如我们想实现“先把要写入文件的数据先缓存到内存中,再把缓存中的数据写入文件中”的功能时,则须要运用下列哪个类?()A.B.OutputstreamC.FilterOutputStrearnD.DataOutputStream.用read方法读取文件内容时,推断文件结束的标记为()A.0B.1C-1D.无标记.以下哪个方法只对运用了缓冲的流类起作用?()A.read()B.writef)Cskip()D.flushQ.Java供应的类InetAddress来进行有关Internet地址的操作.()A.SocketB.ServerSocketC.DatagramSocketDInetAddress.InetAddress类中哪个方法可实现正向名称解析?()A.isReachablef)B.getHostAddressQC.getHosstName()D.getByNamef).为了获得远程主机的文件内容,当创建URL对象后,须要运用哪个方法获得信息()A.getPortf)B.getHostC.openStreamf)D.openConnectionf).java程序中,运用TCP套接字编写服务端程序的套接字类是()A.SocketB.ServerSocketC.DatagramSocketD.DatagramPacket.ServerSocket的监听方法accept的返回值类型是A.voidB.ObjectC.SocketD.DatagramSocket.ServerSocket的getlnetAddress的返回值类型是A.SocketBServerSocketD.InetAddressD.URL.当运用客户端套接字Socket创建对象时,须要指定A.服务器主机名称和端口B、服务器端口和文件C、服务器名称和文件D.服务器地址和文件.运用流式套接字编程时,为了向对方发送数据,则须要运用哪个方法A.getlnetAddressB.getLocalPortC.getOutputStrearnD.getInputStream.运用UDP套接字通信时,常用哪个类把要发送的信息打包?A.StringB.DatagramSocketC.MulticastSocketD.DatagramPacket.运用UDP套接字通信时,哪个方法用于接收数据A.readB.receiveC.accept!D.Listen.若要取得数据包的中源地址,可运用下列哪个语句?A.getAddressfB.getPortC.getNameD.getDataQ.要运用java程序访问数据库,则必需首先与数据库建立连接,在建立连接前,应加载数据库驱动程序,该语句为()AClass.forNamesun.jdbc.odbc.JdbcOdbcDriver”DriverManage.getConnectionfn”Resultrs=DriverManage.getConnectionf.createStatementStatementst=DriverManage.getConnectionf,”.createStaement.要运用java程序访问数据库,则必需首先与数据库建立连接,该语句为AClass・forNamesurujdbc.odbc.JdbcOdbcDriverDriverManage.getConnectionf”Resultrs=DriverManage.getConnectionf.createStatementStatementst=DriverManage.getConnectionfw.createStaement.java程序与数据库连接后,须要查看某个表中的数据,运用下列哪个语句?A.executeQueryfB.executeUpdateQCexecuteEditfD.executeSelectf.java程序与数据库连接后,须要查看某个表中的数据,运用下列哪个语句?A.executeQueryfB.executeUpdatefCexecuteEditfD.executeSelectf
二、填空题.StdoutSystem.out作为Printstream的实例来实现stdout它代表的是屏幕.StdinSystem.in作为Inputstream类的一个实例来实现stdin它代表的是键盘,你可以运用其中两个成员函数,read让你从输入中读一个字节,skiplongn让你在输入中跳过n个字节.Java中的IO流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示每种流包括输入和输出两种所以一共四个:InputStreamOutputStrearnReaderWritero它们通过重载read和write方法定义了6个读写操作方法.File类不是一彳固檄型的I/O类,在java.io类库中它是唯一的non-stream别,既不能取文件内容,也不能修改文件内容,主要作用是收集槽案或目的相KI信息,例如建立文件对象、修改文件名、设置文件属性、测试文件属性.书目是一个包含其他文件和路径列表的File类当你创建一个File对象且它是书目时,isDirectoryf方法返回ture这种状况下,可以调用该对象的String[]list方法来提取该书目内部其他文件和书目的列表.全部的输出过滤流都是抽象类—一的子类FilterOutputStream。