commns-io jar包中的方法及合并流及线程
2018-02-05 20:54
218 查看
``` 自己学习commns-io jar包的方法 1.先找类 2.看该类如何创建对象,调用方法 3.看方法名,揣测方法用意 4.测试看结果,如何整理到方法集中 1)获取路径的扩展名 getExtension(String filename) 2)获取文件名字 getName(String filename) 3)判断是不是这个扩展名 isExtension(String filename,String extension 4)复制文件夹 copyDirectorytoDirectory(File src ,File desc) 5)复制文件 copyFIle(File src,File desc) 6)写入字符串文件 writeStringToFile(FIle src ,String date) 7)读取文件按字符串 readFileTOString(File src) 8)写入文件 write(String date .outputStream output) 9)读取文件到集合中 readlines(inputStream input) public class demo02 { public static void main(String[] args) throws IOException { String string = FilenameUtils.getExtension("/Users/lanou/Desktop/test/haha.txt"); System.out.println(string); String name = FilenameUtils.getName("/Users/lanou/Desktop/test.txt"); System.out.println(name); boolean extension = FilenameUtils.isExtension("/Users/lanou/Desktop/test/haha.txt", "png"); System.out.println(extension); //复制文件夹 FileUtils.copyDirectoryToDirectory(new File("/Users/lanou/Desktop/ccc"), new File("/Users/lanou/Desktop/wads")); //复制文件 FileUtils.copyFile(new File("/Users/lanou/Desktop/wads/sss.txt"), new File("/Users/lanou/Desktop/ccc/w.txt")); //写入字符串文件 把原文件替换了 FileUtils.writeStringToFile(new File("/Users/lanou/Desktop/wads/sss.txt"), "hello world"); //读取文件按字符串 String readFileToString = FileUtils.readFileToString(new File("/Users/lanou/Desktop/wads/sss.txt")); System.out.println(readFileToString); //写入文件 ,可以选取用什么字节流写入 FileOutputStream fos = new FileOutputStream("/Users/lanou/Desktop/wads/sss.txt"); IOUtils.write("hahah", fos); //读取文件到集合中,并且是按字符串形式 FileInputStream fis =new FileInputStream("/Users/lanou/Desktop/wads/sss.txt"); List<String> readLines = IOUtils.readLines(fis); for (String string2 : readLines) { System.out.println(string2); } } } 合并流 Sequenceinputstream 功能:可以把多个文件读成一个流 构造方法 1,SequenceInputStream(InputStream s1, InputStream s2) 2,SequenceInputStream(Enumeration<? extends InputStream> e) 参数是vector中特有的迭代器,elements,vector中保存的是intputStream 的子类 分割图片的方法 File file = new File("/Users/lanou/Desktop/test/wan.png"); 创建输入输出流 FileintputStream fis = new FileintputStream(file); FileoutputStram fos = null; 开始读 int len = 0; int num = 1; byte[] b = new byte[1024]; while((len = fis.read(b))!=-1){ fos = new FileoutputStream("/Users/lanou/Desktop/test/"+ num++ +"png") fos.write(b,0,len); } fos.close(); fis.close(); 合并图片 Vector(FileintputStream) vector = new Vector<>(); //假设有10个碎片 for(i = 0;i<10;i++){ File file = new File("/Users/lanou/Desktop/test/wan"+ i +".png"); FileintputStream fis = new FileinputStream(file); vector.add(fis); } Enumeration<FileInputStream> elements = vector.elements; SequenceintputStream sis = new SequenceStream(elements) //读到一起写到新路径下 FileoutputStream fos = new FileoutputStream("/Users/lanou/Desktop/test/wanzhiweinew.png"); byte[] b = new byte[1024]; int len = 0; while((len = sis.read(b))=-1){ fos.write(b,0,len); } sis.close(); fos.close(); 进程:一个正在运行程序 一个进程中可以有一个线程,也可以有多个线程 线程:一个线程相当于一个CPU执行路径,独立的运行单元 线程的创建 1.创建一个类去继承Thread Thread中fun方法不是抽象方法,在创建的类中手动重写fun方法。最后在main函数中实例化一个对象,在调用start()方法。 Thread(String name) 该方法在创建线程的时候给同时给该线程起个名 构造方法不能被继承,要想使用父类的构造方法 ,可以在子类中写带参数的 class SubTherad extends Thread { public SubTherad() { } public SubTherad(String name) { super(name); } // 重写run方法 public void run() { for (int i = 0; i < 50; i++) { //获取线程名的方法 getName System.out.println(super.getName() + "--run方法--" + i); } } } class Namethread extends Thread{ private String name; public Namethread(){ } public Namethread(String name,String myname) { //这里传递的是线程的名字 ,利用 的是父类的构造方法 super(name); //给自己的类赋值 //建议不用使用name这个名字,避免麻烦 this.name = myname; } 父类中 已经有了getname方法并且用final修饰,所以不能被重写 // public String getname() { // return name; // } // public void setname(String name) { // this.name= name; // } public String getmyname() { return name; } public void setmyname(String name) { this.name = name; } public void run() { } } 线程中的第二种创建方法 写一个类区实现runnable /* * 实现runnable 来创建线程对象 */ public class demo05 { public static void main(String[] args) { //创建一个线程 RunableImtl run =new RunableImtl(); Thread thread = new Thread(run); thread.start(); } } // 接口中run方法是个抽象方法 class RunableImtl implements Runnable { @Override public void run() { for (int i = 0; i < 50; i++) { System.out.println(Thread.currentThread().getName() + i); } } }
“`
相关文章推荐
- Java中Commons-io-jar包中的方法、合并流、线程
- Commons-io jar包中的方法 功能流 以及 线程基础
- 5.3 Join方法合并线程
- JAVA基础 day22 File类的方法和应用 利用递归获取目录下的所有文件 Properties类的应用(和IO技术结合,存取配置文件) 打印流和合并流等功能类的学习应用 切割文件练习
- 合并多个jar包的两种方法
- 线程合并join方法和出让CPUyield方法
- jion方法(合并某个线程) jion()调用优先级别,把"谢霆锋"调到前面输出
- 【IO进程】Linux C中回收线程资源的方法
- AVR读写IO口右一方法(借用ATmel)
- iOS子线程更新UI的两种方法
- 实现两有序数组的合并仍为新有序数组,且不对新数组排序的最简单方法
- Java调优—Btrace监控Java线程/方法执行参数、执行时间(Windows)
- C#一个线程操作另一个线程的控件的方法(转)
- chromium源码阅读(4)-线程模型之IO线程
- 精简google-play-services.jar的方法
- tomcat下载文件时,URL含有文字参数与空格参数出错(java.io.FileNotFoundException错误) 解决方法(转)
- VC++等待线程结束的方法
- 真机缺少com.google.android.maps.jar解决方法
- 在线程中调用PJSIP中的呼叫出现提示注册线程pj_thread_register的解决方法
- java中有几种方法可以实现一个线程