这里写目录标题
File类
File递归遍历目录
package shiyan;
import java.io.File;
public class BankDemo
{
public static void main(String[] args) {
File a=new File("C:\\Users\\mangder\\Pictures");
getall(a);
}
public static void getall(File a){
File []s=a.listFiles();
if(s!=null){
for(File y:s){
if(y.isDirectory()){
getall(y);
}
else{
System.out.println(y.getAbsolutePath());
}
}
}
}
}
字节流
输出流向File写数据
写的是a
记得释放资源
281
字节流写数据
如何换行
a.write("\r\n")即可
如何追加信息
加一个true的形参即可
加异常处理
一般都用throws
但是try catch也要掌握
字节流读数据
单个读取:
循环读取
注意:可以读取换行
优化:
读取一个数组
意思是一次性读1024个符号
复制文件
复制图片
字节缓冲流
字符流:
字符流写数据
还可以指定字符类型
读数据:
Inputstreamreader的子类:Filereader,对应Filewriter
字符缓冲流
字符缓冲流特有功能
写数据:
读数据
复制文件的改进
总结:
集合到文件
文件到集合
文件到集合高级版(排序)
treeset记得重写comparable方法,还得分主要和次要条件
录入学生成绩(已经按照treeset定义的顺序进行排序了)
写入文件并释放资源
309
进程和线程:
进程:正在执行的应用程序
线程:在一个进程内部可以执行一个任务也可以执行多个任务,一个任务执行路径就可以看成一个线程
单线程:比如设置框弹出式比许将设置框的选项勾号后才能关闭它,这就是单线程
多线程:计时器
多线程的实现方法:
线程的命名
用无参构造方法命名:
直接用setName即可
带参构造方法:
在自定义的线程类中构造带参构造方法
public testthread extend Thread{
public testthread(String name){
super(name)
}
}
然后再测试类中调用即可
查看和设置线程的优先级
最大优先级:10 Tread.MAXPRIORITY
最小优先级:1 Tread.MINPRIORITY
设置优先级:.setpriority
查看优先级:.getpriority
线程的控制
sleep
join
线程的生命周期
实现runabble的接口
构造方法
测试类
接口类
卖票bug
以下三点三个全部满足才可能出现问题
package 卖票;
public class 买票 {
public static void main(String[] args) {
买票接口 x1=new 买票接口("窗口1");
买票接口 x2=new 买票接口("窗口2");
买票接口 x3=new 买票接口("窗口3");
x1.start();
x2.start();
x3.start();
}
}
package 卖票;
public class 买票接口 extends Thread{
private int tickets=100;
public 买票接口(String name){
super(name);
}
public 买票接口(){}
@Override
public void run() {
while(tickets>0){
System.out.println(getName()+":"+tickets);
tickets--;
}
}
}