全国二级Java考试中的几个难点.ppt
《全国二级Java考试中的几个难点.ppt》由会员分享,可在线阅读,更多相关《全国二级Java考试中的几个难点.ppt(51页珍藏版)》请在三一文库上搜索。
1、全国二级Java考试中的几个难点,输入输出流和文件处理 Java的多线程机制 Applet类与Applet小程序 Java的异常处理,1 输入输出流和文件处理,1. 1 流的概念 流是指在计算机的输入与输出之间运动的数据的序列。输入流代表从外设流入计算机的数据序列,输出流代表从计算机流向外设的数据序列。 流的最大特点是:数据的获取和发送均按数据序列顺序进行。 Java中的流分为两种(被抽象为四个类): 字节流: InputStream类和OutputStream类 字符流: Reader类和 Writer类 字符流比字节流更有效。,1. 字节流,从抽象类InputStream和OutputSt
2、ream派生出来的一系列类,这类流以字节(byte)为基本处理单位。,基本输入流类InputStream的常用方法, 从流中读取数据: int read( ); /读取一个字节,返回值为所读的字节 int read( byte b ); 读取多个字节,放置到字节数组b中,通常读取的字节 数量为b的长度,返回值为实际读取的字节的数量 int read( byte b , int off, int len ); 读取len个字节,放置到以下标off开始字节数组b中, 返回值为实际读取的字节的数量 int available( ); /返回值为流中尚未读取的字节的数量 long skip( long
3、 n ); /读指针跳过n个字节不读,返回值为实际跳过的字节数量 关闭流: close( ); /流操作完毕后必须关闭,基本输出流类OutputStream 的常用方法, 输出数据: void write( int b ); /往流中写一个字节b void write( byte b ); /往流中写一个字节数组b void write( byte b , int off, int len ); 把字节数组b中从下标off开始、长度为len的字节写入流中 flush( ) /刷空输出流,并输出所有被缓存的字节 由于某些流支持缓存功能,该方法将把缓存中所有内容强制输出到流中。 关闭流: clos
4、e( ); /流操作完毕后必须关闭,2 字符流,从抽象类Reader和Writer派生出的一系列子类,这类流以16位的Unicode码表示的字符(一个字符由两个字节组成)为基本处理单位。 常用字符流子类和功能,1.2 基本流,1. 键盘输入和格式化输出 Java有3个内置的标准流对象: 1)标准输入流System.in: 用来读取用户从键盘的输入 2)标准输出流System.out: 用来在屏幕上显示信息 3)标准输出流System.err: 用来显示出错信息 (1)键盘输入: 使用System.in对象的read()方法 例: char c=(char)System.in.read( );
5、使用InputStreamReader 、BufferReader流类 例: InputStreamReader isr=new InputStreamReader(System.in); BufferReader br=new BufferReader(isr);,(2)格式化输出,用Java的标准输出System.out,可以输出不同类型的对象: 例:Int a=20; System.out .print(a) System.out .println(“大家好”) /加换行 用java.text包中的NumberFormat类可以控制显示格式,有三种方法: NumberFormat.get
6、NumberInstance( ) /附加逗号 NumberFormat.getCurrencyInstance( ) /货币符号 NumberFormat.getPercentInstance( ) /百分号,1.3 文件类,1. Java程序的文件与目录管理 Java.io包中的File类专门用来管理磁盘文件和目录。每个File类的对象表示一个磁盘文件或目录,对象属性中包含名称、长度、所含文件个数等信息。 (1)创建File类对象的三种方法: File(String path); 指明磁盘文件或目录名及其路径 注意:目录分隔符用System.dirSep表示 如:File f1=new F
7、ile(“c:”+ System.dirSep+”sj”) File(String path, String name);,文件或目录的路径,文件或目录名,File(File dir, String name); (2)获取文件或目录属性,已经存在的磁盘目录,(3)文件或目录的操作,注意:由于Java Applet程序是从网络上下载到本地机器运行的,不可知也不可控,所以Java的安全机制禁止Java Applet程序访问和存取本地文件,如果试图在Java Applet程序中使用文件操作,则将引发Java的安全性异常。,文件操作例子,2. 写文本文件,方法一:用FileOutputStream打
8、开文件my.txt,然后用PrintStream 对象p的println方法把字符串写入文件中。 例: FileOutputStream fout=new FileOutputStream(“my.txt”) PrintStream p=new PrintStream(fout); p.println(“要写入文本文件中的内容”); p.close();,写文本例子1,方法二:用FileWriter打开文件myf.txt,又创建了文本输出流out,然后用out 的print(或者println)方法把字符串写入文件中。 例: FileWriter fw= new FileWriter(“myf
9、.txt”); PrintWriter out=new PrintWriter(fw); out.print(“要写入文本文件中的内容”); out.close(); /关于输出 fw.close(); /关闭文件,写文本例子2,3. 读文本文件,方法一:用FileInputStream打开文件my.txt,然后建立DataInputStream的 对象in(文件流),使用in的readLine()方法以一行为单位读出my.txt文件中的所有字符串。 例: FileInputStream fs=new FileInputStream(“my.txt”) DataInputStream in=n
10、ew DataInputStream(fs); while(in.available( )!=0) System.out.println( in.readLine() ); in.close(); /关闭输入流,读文本例子1,方法二:用FileReader打开文件myf.txt,然后用BufferedReader类的对象br作为文件流,用br 的readline()读取文件中的字符串。 例: FileReader fr= new FileReader (“myf.txt”); BufferedReader br=new BufferedReader(fr); String record=new
11、 String( ); Int recCount=0; While (record=br.readLine()!=null) recCount+; System.out.println(recCount+”:”+ record); br.close(); /关于缓存 fr.close(); /关闭文件,读文本例子2,4. 程序对文件的随机访问,用RandomAccessFile类可以实现对文件的随机读写操作,即可以在文件的任意位置执行数据读写; 创建RandomAccessFile的对象 例:File mf= new File (“myf.txt”); RandomAccessFile myR
12、AF= new RandomAccessFile (mf, ”rw”);,访问模式: rw: 可读、可写 r: 只读,作为数据源的文件,对文件进行读写操作,RandomAccessFile类实现了DataInput和 DataOutput接口,在读/写时具备强大的含类型转换的输入/输出功能; RandomAccessFile类的所有方法都有可能抛出IOException异常,在利用它实现文件操作时需要将相关语句放在try块中,并配上catch块来处理异常。,文件访问例子,2 Java的多线程机制,2.1 Java中的线程 1. 程序、进程与线程的区别,线程是比进程更小的执行单位,一个进程在执行
13、过程中可以 产生多个线程,每个线程有自己的产生、存在、消亡的过程。 线程间可以共享相同的内存单元,实现数据交换、实时通信 和同步操作。,进程是程序的一次动态执行过程(放电影),对应着代码加载、 执行到执行完毕的全过程。每一个进程都有自己独立的一块内 存空间、一组系统资源。在进程概念中,每一个进程的内部数 据和状态都是完全独立的。,程序是一段静态的代码,是应用软件执行的蓝本(电影胶片)。,Java的多线程,Java内在支持多线程,它的所有类都是在多线程下定义的,Java利用多线程可以开发能同时处理多个任务的功能强大的应用程序。 Java程序通过流控制来执行程序流,程序中单个顺序的流控制称为线程,
14、多线程则指的是在单个程序中可以同时运行多个不同的线程,执行不同的任务。多线程意味着一个程序的多行语句可以看上去几乎在同一时间内同时运行。,使用多线程的好处:,使UI交互的响应更块 充分利用多处理器系统 简化建模 执行异步和后台处理,Java中的线程由三部分组成: 1. 虚拟的CPU,封装在java.lang.Thread类中 2. CPU所执行的代码,传递给Thread类 3. CPU所处理的数据,传递给Thread类,Java中的线程多任务示意图,2.2 线程的状态与生命周期,start(),sleep()时间到,获得锁,wait(),scheduler(),yield(),sleep()或
15、join(),run()方法结束,synchronized,notify() notifyAll(),Interrupt(),(1)创建状态(new Thread) 执行下列语句时,线程就处于创建状态: Thread myThread = new Thread ( ); 当一个线程处于创建状态时,它仅仅是一个空的线程对象,系统不为它分配资源。,(2) 可运行状态( Runnable ) Thread myThread = new Thread ( ); myThread.start( ); 当一个线程处于可运行状态时,系统为这个线程分配了它需的系统资源,这样该线程处于运行就绪状态,系统中可以同
16、时有多个线程处于Runnable 状态。 (3) 运行状态(Running) 是线程占有CPU并实际运行的状态。,( 4) 阻塞状态(Blocked) 阻塞状态也称为不可运行状态。因为某种原因(输入/输出、等待消息或其它阻塞情况),系统不能执行线程的状态。这时即使处理器空闲,也不能执行该线程。 进入不可运行状态的原因有如下几条: 1) 调用了sleep()方法,休眠时间到即进入可运行状态; 2) 调用了t.join()方法,当t线程结束或等待时间 到即进入可运行状态; 3) 为等候一个条件变量,线程调用wait()方法; 4) 输入输出流中发生线程阻塞;,线程的终止一般可通过两种方法实现: 自
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 二级 Java 考试 中的 几个 难点
链接地址:https://www.31doc.com/p-3326616.html