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

来源:互联网 发布:剑三军爷男神捏脸数据 编辑:程序博客网 时间:2024/05/19 14:40

#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.classA$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();

 

 

0 0
原创粉丝点击