您的位置:首页 > 其它

安卓学习第十三天:大文件的IO,字符流,处理流,内部类,匿名内部类,线程初步

2015-04-27 22:20 423 查看
#1大文件的读写方法
使用循环来读取,每次去一段数据,从源文件读取一部分,然后写入
到目标文件中。
代码:
While (true){
Inttemp=fis.read(buffer,0,buffer.length);
if (temp==-1){
break;
}
Fos.write(buffer,0,temp);
}

关闭输入流和输出流
放在finally代码块中
Fis.close();

Fos.close();

#2字符流的使用方法
字符流是以字符为基础的,字符输入流:Reader<----FileReader
Intread(char []c,int off,int len);
字符输出流:Writer<----FileWriter
Voidwrite(char []c,int off,int len);

#3处理流的使用实例
BUfferReader<---readLine();
BUfferReader接受的参数是BUfferReader的对象
readnLine()返回的是一个字符串
readLine读取到末尾的时候返回值为空

#4装饰者模式
装饰者相当于给被装饰者加了一个功能。
ClassAworker implements Worker{
PrivateWorker worker;
PublicAworker(worker){
this.worker=worker;
}
Publicvoid doSomeWork{
worker.doSomeWork();
}
}

#5节点流和处理流的关系
处理流是来装饰节点流的

#6内部类和匿名类的使用方法
什么是内部类:一个类定义在另一个类的里面。称之为内部类
Class A{
class B{

}
}
编译会生成一个A.class和A$B.class。会生成两个类文件。
如何生成内部类的对象:A.Bb=new A().new B();内部类的名字叫A.B
内部类可以随意使用外部类生成的成员变量。

没有名字的内部类称为匿名内部类
B.fun(newA(){
Publicvoid doSomeThing(){
System.out.println("匿名内部类");
}
})

#7 java当中的进程和线程
多进程:在操作系统中能(同时)运行多个任务(程序)
多线程:同一个程序中,有多个顺序流同时进行

生成线程--》进入就绪状态--》进入运行状态---》进入就绪状态----》。。--》执行完毕,死亡
线程也是一个对象
定义一个线程类,它继承Thread类并重写其中的方法run();方法run()称为线程体。
class FirstThread extends Thread{
Publicvoid run(){
for(i=1,i<100,i++){

System.out.println(i);
}
}
}

生成线程类的对象
FirstThreadft=new FirstThread();
启动线程
Ft.start();这个start方法继承自Thread类,该线程属于就绪状态。还没有执行;
该语句会直接执行run方法;

有三个线程,一个是main,一个是ft,一个是垃圾回收线程
看谁能抢到cpu,谁抢到谁执行。
多线程的执行没有规律,这也是多线程最麻烦的地方。
多线程最大的麻烦就是没谱。
如果加上ft.run();则启动的不是多线程,只是单线程,只会执行ft线程,完了再执行main();
启动线程只能用start方法;

#8实现线程的第二种方法
提供一个实现接口runable的类作为的线程的目标对象,在初始化一个Thread类的一个Thread类的子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体。
class R implements Runable{
Publicvoid run(){

方法体。
}
}
生成一个runable接口实现类的对象
R r=newR();
生成一个Thread对象,然后将runalbe接口实现类的对象作为构造函数的参数传递给Thread
Threadt=new Thread®;

#9线程的简单控制方法
中断线程:
Thread.sleep();传递一个参数,参数是毫秒数,相应的毫秒数后,线程进入就绪状态。
Thread.yield();

设置线程的优先级:
getPriority();
setPrioritty();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐