编写一个Java应用程序,程序运行后,要求到指定的文件夹(比如d:\work目录)查找后缀为java的文件,取出并保存到d:\test目录下。( 这是要用到正则表达式么? 请指点下,最好有代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要正则表达式递归,过滤.java文件,copy到test下 import java.io.File;import java.io.FilenameFilter;public class Filter implements FilenameFilter { @Override public boolean accept(File dir, String filename) { // TODO Auto-generated method stub return filename.endsWith(".java"); }}然后File filelist = new File("d:\work");String[] dirs = filelist.list(new Filter());取到后随便你放到什么地方 递归,过滤.java文件,copy到test下 这里只有过滤器的设置,递归的话你就自己写吧 public static void main(String[] args) { File file = new File(""); if(file.isDirectory()){ file.listFiles(new FileFilter() { public boolean accept(File file) { String path = file.getPath(); String ex = path.substring(path.indexOf(".") + 1); if(ex.equalsIgnoreCase("JAVA")){ return true; } return false; } }); } } package io;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FilenameFilter;import java.io.IOException;public class FilterAndCopy{ /** * @param args */ public static void main(String[] args) { FilterAndCopy fc = new FilterAndCopy(); File[] fileList = fc.findFile("f://",".java"); fc.copy( fileList, "f://test"); } /** * 查找sourceDir目录下后缀为sign的文件 * @param sourceDir * @return */ public File[] findFile(String sourceDir,final String sign){ File fileDir = new File(sourceDir); if(!fileDir.exists()){ throw new RuntimeException("您查找的文件夹不存在"); } File[] fileList = fileDir.listFiles(new FilenameFilter() { @Override public boolean accept(File dir, String name) { // TODO Auto-generated method stub return name.endsWith(sign); } }); return fileList; } /** * 复制文件 * @param fileList * @param endDir */ public void copy(File[] fileList,String endDir){ BufferedInputStream binput = null; BufferedOutputStream bout = null; byte[] b = new byte[1024]; File endFileDir = new File(endDir); if(!endFileDir.exists()){ endFileDir.mkdir(); } for(File file : fileList){ try { binput = new BufferedInputStream(new FileInputStream(file)); bout = new BufferedOutputStream(new FileOutputStream(new File(endDir,file.getName()))); while(binput.read(b) != -1){ bout.write(b); bout.flush(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { if(binput != null){ binput.close(); } } catch (IOException e) { e.printStackTrace(); } try { if(bout != null) bout.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } java如何实现QQ在网页上在线和下线的不同表示 帮助改一下程序吧。 java集合到底要怎么理解? 框架问题 看这段代码,为什么要这样做? 谁能帮菜鸟改改这段程序啊~~~ 为什么Applet不能正常显示? A Question of A Java Newcomer! 求助:函数调用问题--判断两个整数是否相等,在调用函数时不打印 ask for help 有点乱了:JAVA Swing的基础问题 请教各位前辈!!!if.else基础题目!!主要求教解题思路。。。
递归,过滤.java文件,copy到test下
import java.io.FilenameFilter;public class Filter implements FilenameFilter { @Override
public boolean accept(File dir, String filename) {
// TODO Auto-generated method stub
return filename.endsWith(".java");
}}然后
File filelist = new File("d:\work");
String[] dirs = filelist.list(new Filter());取到后随便你放到什么地方
File file = new File("");
if(file.isDirectory()){
file.listFiles(new FileFilter() {
public boolean accept(File file) {
String path = file.getPath();
String ex = path.substring(path.indexOf(".") + 1);
if(ex.equalsIgnoreCase("JAVA")){
return true;
}
return false;
}
});
}
}
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;public class FilterAndCopy{ /**
* @param args
*/
public static void main(String[] args) {
FilterAndCopy fc = new FilterAndCopy();
File[] fileList = fc.findFile("f://",".java");
fc.copy( fileList, "f://test");
}
/**
* 查找sourceDir目录下后缀为sign的文件
* @param sourceDir
* @return
*/
public File[] findFile(String sourceDir,final String sign){
File fileDir = new File(sourceDir);
if(!fileDir.exists()){
throw new RuntimeException("您查找的文件夹不存在");
}
File[] fileList = fileDir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(sign);
}
});
return fileList;
}
/**
* 复制文件
* @param fileList
* @param endDir
*/
public void copy(File[] fileList,String endDir){
BufferedInputStream binput = null;
BufferedOutputStream bout = null;
byte[] b = new byte[1024];
File endFileDir = new File(endDir);
if(!endFileDir.exists()){
endFileDir.mkdir();
}
for(File file : fileList){
try {
binput = new BufferedInputStream(new FileInputStream(file));
bout = new BufferedOutputStream(new FileOutputStream(new File(endDir,file.getName())));
while(binput.read(b) != -1){
bout.write(b);
bout.flush();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
if(binput != null){
binput.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(bout != null)
bout.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}