`
QCheng5453
  • 浏览: 16572 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Android笔记——Day3 *异常处理 *Java中的io *匿名内部类

 
阅读更多

1、异常处理。

··Java中含有异常处理机制。

··Java中异常的继承关系:

Throwable<——Exception<——RuntimeException、··· ···

··通常有两种情况需要对异常进行处理。

1)产生了运行时的异常,即unchecked异常,及RuntimeException类及其子类。

2)编译器对可能产生异常的代码在编译时强制要求对异常进行处理,即checked异常。包括Exception和除了 RuntimeException意外的异常类。

一般有一下几种情况:

1)Thread.sleep(long);

2)  对IO流的打开或关闭。

3)  以后遇到再加。

··对于异常的处理方法:

 

		 try{
                        //产生或者可能产生异常的代码
			}
		}
		catch (Exception e) {
			// 对于异常的处理的代码
		}finally{
                        //无论是否产生异常都会执行的代码,一般用于IO流的关闭等等
		}

 

 

··可以在代码中编写产生异常的代码。如果产生的是unchecked异常,比如RuntimeException re = new RuntimeException(String);然后可用throw关键字对其进行抛出,在编译时不会报错,在运行时会打印出错误代码。

而如果是checked异常,如果不在产生异常的地方加上try—catch结构,可以在产生异常的函数中加上throws关键字将异常交给调用函数的上一级进行捕捉。

比如说:

 

 

	public void error(){
		RuntimeException re = new RuntimeException("错误啦");
		throw re;//这句抛出异常,如果没有这句,这么都不会产生。
	}//编译时不会报错,运行结果会打印出错误。
	
	public void error() throws Exception{ //这句将异常交给上级处理。
		Exception e = new Exception("错误啦");
		throw e;
	}

---------------------------------------------------------------------------------------------------------------------------------

 

2、Java中的IO

··Java中的IO可以分为字节流和字符流,或者是分为节点流和处理流。

1)字节流:

InputStream<—FileInputStream

其中有函数int read(byte [] b , int off , int len),第一个形参表示将 FileInputStrean对象中的内容放入b中,第二个表示从b的第几位开始放(偏移量),第三个len 表示预计读取的字节数,返回值表示真正读取的字节数。如果什么都没有(读到文件结尾) 返回-1;

OutputStream<—FileOutputStream

其中由函数void write(byte [] b , int off , int len),意义和上面类似。

2)字符流:

FileReader和FileWriter和上面的基本上是一样的。

3)需要注意的是在IO流创建和关闭的时候要加上try—catch结构,因为这些行为都是checked异 常。

··Java中“装饰者模式”:

··为了可以对一大部分类进行一些共同的操作,即对一些类进行“装饰”,Java中可以采用复合的方式,即新建 一个类,其中包含所要“装饰”类的对象,在以该类为参数重载一个构造函数。直接看代码吧,直接说起来有点虚。

 

public class lei{
	public static void main(String args[]){
		FileReader fr = null;
		BufferedReader br = null; //BufferedReader是一个用于IO的处理流,也是一个装饰类
		String line = null;
		try{
			fr = new FileReader("c:/in.txt");
			br = new BufferedReader(fr);//可以用某个IO流作为参数构成BufferedReader对象
			while((line = br.readLine())!= null){//经常会利用BufferedReader对象的readLine函数
				System.out.println(line);
			}	
		}catch (Exception e) {
		}finally{
			try{
				fr.close();
				br.close();
			}catch (Exception e) {
			}
		}
	}
}
 

3、匿名内部类

··在Android开发中经常性地会用到匿名内部类。

··匿名内部类的用法比较简单,即这个类是在某个类之中且不给它赋名字,一般用于一次性产生的对象

 

        startButton.setOnClickListener(new OnClickListener() {//这里就是一
个匿名内部类,直接覆写了OnClickListener这个类中的onClick函数,并生成了一个
对象。
			public void onClick(View v) {
				new Thread(run1).start();//开始执行run1;
			}
		});

 

4、文件下载。

http://edu.gamfe.com/tutor/d/37218.html

··这里只讨论非常简单的文件下载--#

··Java中文件下载一般分为如下一个步骤。

1)新建一个URL对象。

2)用所建的URL对象生成以个URLConnection对象用于建立连接。

3)用URLConnection对象的getInputStream()函数获取该URL的输入流。

4)得到输入流之后可以写入SD卡或是进行其他一系列处理。

public class lei{
	public static void main(String args[]){
		BufferedReader br = null;
		String line = null;
		try{
			URL url = new URL("http://baike.baidu.com/view/1007958.htm");//新建一个URL对象
			URLConnection con = (URLConnection)url.openConnection();//用URL对象的openConnection()方法新建一个URLConnection对象,注意要向下转型。
			InputStream is = con.getInputStream();	
			br = new BufferedReader(new InputStreamReader(is));//需要先将字节流转为字符流,因为BufferedReader是字符流
			while((line = br.readLine())!= null){
				System.out.println(line);//这里只是将得到内容输出,最后的输出结果是htm代码。
			}
		}catch (Exception e) {
		}finally{
			try{
				br.close();
			}catch (Exception e) {
			}
		}
	}
}
 

 

 

 

分享到:
评论

相关推荐

    JAVA学习笔记————————

    3. **异常处理**:JAVA提供了一种结构化的异常处理机制,学习笔记会解释何时及如何使用try-catch-finally语句块,以及不同类型的异常类。 4. **内存管理与垃圾回收**:JAVA的自动内存管理是通过垃圾回收机制实现的...

    Android 学习笔记——利用JNI技术在Android中调用、调试C++代码

    这篇“Android学习笔记——利用JNI技术在Android中调用、调试C++代码”将带你深入理解如何在Android应用中使用JNI来调用C++代码,以及如何进行调试。以下是对这一主题的详细阐述。 1. **JNI简介** JNI是Java平台的...

    Java学习笔记——良葛格

    【Java学习笔记——良葛格】是一份由爱好者良葛格整理的Java学习资料,主要以PDF格式呈现,虽然可能不完整,但包含了丰富的Java编程基础知识和实践技巧,旨在为初学者提供一个学习和参考的平台。以下是笔记中可能...

    Java JDK 6学习笔记——ppt

    3. **异常处理**:Java中,异常是一种错误处理机制,通过try-catch-finally语句块来捕获并处理可能出现的错误,保证程序的健壮性。 4. **集合框架**:Java集合框架是一组接口和类,如List、Set、Map,它们提供了...

    java学习笔记——异常

    Java学习笔记——异常 在Java编程中,异常处理是一项至关重要的技能,它允许开发者优雅地处理程序运行时可能遇到的问题,防止程序意外终止,并提供有用的反馈信息。异常是程序执行过程中遇到的不正常情况,例如除以...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...

    个人学习的java笔记——思维导图

    这份"个人学习的java笔记——思维导图"是作者学习Java过程中的总结,通过思维导图的形式,将复杂的概念和知识结构化,便于理解和记忆。下面,我们将深入探讨其中涉及的一些关键知识点。 1. **基础语法**:Java的...

    学习笔记——资料

    【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...

    JDK 6学习笔记——PPT简体版

    **JDK 6学习笔记——PPT简体版** Java Development Kit(JDK)是Java编程语言的核心组件,它提供了开发和运行Java应用程序所需的工具和环境。JDK 6是Oracle公司发布的一个重要版本,为开发者带来了许多改进和新特性...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记——PPT简体版是针对初学者和Java爱好者的一份宝贵资料,它涵盖了Java JDK 6的基础知识和核心概念。这份笔记旨在帮助读者掌握Java编程语言的关键点,为深入学习和实际开发奠定基础。下面将详细...

    Java笔记——2017年3月3日

    这份"Java笔记——2017年3月3日"涵盖了多个关键概念,对于深入理解Java编程至关重要。下面将逐一详解这些知识点: 1. **泛型**:泛型是Java 5引入的一项特性,它允许在类、接口和方法中使用类型参数,增强了代码的...

    超详细的Java复习知识点2019——个人笔记.zip

    这份名为"超详细的Java复习知识点2019——个人笔记"的文档,旨在为初学者提供一个全面且深入理解Java基础知识的指南。笔记内容可能涵盖了以下几个关键领域: 1. **Java语法基础**:包括变量、数据类型、运算符、...

    Java JDK 6学习笔记——ppt简体版.rar

    通过"Java JDK 6学习笔记——ppt简体版",学习者可以系统地学习到如何使用JDK 6进行开发,包括环境配置、基本语法、类库使用、异常处理、IO流、网络编程、多线程等各个方面。PPT格式通常直观易懂,便于快速理解和...

    java IO流学习笔记

    本节将详细介绍如何在Java中处理异常,并结合具体的IO流操作进行说明。 #### 一、异常处理 在Java中,异常处理主要通过`try-catch-finally`语句来实现。下面对这些关键字进行逐一解释: - **try**:该块用于包含...

    Android Training学习笔记——Navigation 参考源码

    在"Android Training学习笔记——Navigation 参考源码"中,作者可能详细解析了源码,展示了如何创建和配置Navigation Graph,以及如何在代码中使用`NavController`进行导航。可能还涵盖了如何调试和测试Navigation...

Global site tag (gtag.js) - Google Analytics