copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...
listFiles方法接受一个FileFilter对象,这个FileFilter对象就是过虑的策略对象,不同的人提供不同的FileFilter实现,即提供了不同的过滤策略。
//将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
packagecom.file;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.FilenameFilter;importjava.io.IOException;public classChangeFileName {public static void main(String[] args) throwsException {
File srcDir=new File("java");if(!(srcDir.exists()&&srcDir.isDirectory())){throw new Exception("目录不存在!");
}
File[] files=srcDir.listFiles(newFilenameFilter(){public booleanaccept(File dir, String name) {return name.endsWith(".java");//过滤后缀名为.java的文件
}
}
);
System.out.println(files.length);
File deskDir=new File("jad");if(!(deskDir.exists()))
deskDir.mkdir();//目录不存在创建一个新目录for(File file : files) {
FileInputStream fis=newFileInputStream(file);
String deskFileName=file.getName().replace("\\.java$", ".jad");//更改文件后缀名
FileOutputStream fos=new FileOutputStream(newFile(deskDir,deskFileName));//创建一个要写入的目标文件
copy(fis,fos);
fis.close();
fos.close();
}
}
//将文件从一个文件复制到另一个文件public static void copy(FileInputStream fis,FileOutputStream fos) throwsIOException{byte[] buf=new byte[1024];int len=0;if((len=fis.read(buf))!=-1){
fos.write(buf,0, len);
}
}
}
将每个文件复制到另外一个目录,并改扩展名
得到目标目录,如果目标目录不存在,则创建之
根据源文件名得到目标文件名,注意要用正则表达式,注意.的转义。
根据表示目录的File和目标文件名的字符串,得到表示目标文件的File。
//要在硬盘中准确地创建出一个文件,需要知道文件名和文件的目录。
将源文件的流拷贝成目标文件流,拷贝方法独立成为一个方法,方法的参数采用抽象流的形式。
//方法接受的参数类型尽量面向父类,越抽象越好,这样适应面更宽广。
分析listFiles方法内部的策略模式实现原理
File[] listFiles(FileFilter filter){
File[] files = listFiles();
//Arraylist acceptedFilesList = new ArrayList();
File[] acceptedFiles = new File[files.length];
int pos = 0;
for(File file: files){
boolean accepted = filter.accept(file);
if(accepted){
//acceptedFilesList.add(file);
acceptedFiles[pos++] = file;
}
}
Arrays.copyOf(acceptedFiles,pos);
//return (File[])accpetedFilesList.toArray();
}
copy所有的java文件到硬盘_将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad...相关推荐
- 将d:\java目录下的所有.java文件复制到d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad
package com;import java.io.*; import java.util.ArrayList; import java.util.List; /* 编写一个程序,将d:\java目 ...
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
package com.hbut.test; import java.io.File; import java.io.FileNotFoundException; import java.io.Fil ...
- Java算法面试题:编写一个程序,将e:\neck目录下的所有.java文件复制到e:\jpg目录下,并将原来文件的扩展名从.java改为.jpg...
package com.swift;import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; im ...
- 以java为扩展名_Java源程序文件的扩展名为.java。
Java源程序文件的扩展名为.java. 答:√ Many mothers today feel _(conflict)_ ?about working outside the home. 答:对 ( ...
- 编写一个程序,将 d:\java 目录下的所有.java 文件复制到 d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad。...
package IO; import java.io.*; public class FileCopy {public static void main(String[] args) throws E ...
- java源文件到字节码的命令,Java的源代码文件的扩展名是 ,Java源文件通过编译命令编译成的字节码文件(平台无关)的扩展名是 。...
[判断题]SNMP使用探询以维持对网络资源的实时监视,同时也采用陷阱机制报告特殊事件. [单选题]如果一种物品的市场价格高于均衡价格,下列说法正确的是( ). [判断题]杜甫的"不为困穷宁有 ...
- java好听的名字_(男孩起名)李白诗中最唯美的三字名字推荐,李白诗中最唯美的三字名字取名方法 - Java伴我余生 - 宝宝起名网...
温馨提示: 本文约有1125个文字,大小约为5KB,预计阅读时间3分钟,本文共 3张图片. 本文李白诗中最唯美的三字名字推荐,李白诗中最唯美的三字名字取名方法,请您欣赏.宝宝起名网众多优秀文章,如果想 ...
- 用java创建person类_创建一个Person类,有以下属性:名字、身高、性别、年龄,创建10个对象,用java程序...
展开全部 public class Person{ private String name; private int height; private String sex; private int a ...
- 把java复制到e_编写一个程序,将e:\java目录下的所有.java文件复制到e:\jad目录下...
package cn.io.file.demo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...
最新文章
- 示波器基本原理之二:采样率
- Spring Session——@EnableSpringHttpSession注解
- ae去黑插件_视频素材如何去黑底?送你这款插件,自动一键去黑底。适用AE、PR...
- c# 自定义应用程序配置文件(app.config)
- DevOps:从「蒸汽时代」到「高铁时代」,SUNMI DevOps转型之路 | 原力计划
- 礼品盒子插画素材丨节日设计加上它之后价值翻倍!
- 信息安全完全参考手册之信息安全概述(第一章)
- php数组出栈,php array_pop()数组函数将数组最后一个单元弹出(出栈)
- git 上传项目到github
- 【转】优秀的Java程序员必须了解GC的工作原理
- matlab 不确定度计算器,不确定度计算器
- Android Lolipop AssetAtlasService引起的系统崩溃
- java安装 2203_高手分析win7系统无法安装java程序提示“内部错误2203”的处理
- [文摘20090201]男女朋友~~需记住亦舒的77句话
- EntityComponentSystemSamples学习笔记
- 计算机ping 的快捷键,Ping命令使用小技巧
- 为什么要有Git暂存区
- vue集合离线百度地图
- 滤波器,滤波器的种类,作用,原理
- Sperax月报 | 2021年8月