一、题目1
编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。
二、代码
Test4.java
/* * 创建一个主类和方法类,手动输入目录 列出所有文件,指定某类型 列出该类型文件 * 并将文件剪切到其他目录 * */ package g; import java.io.BufferedInputStream; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStream; import java.io.Writer; import java.util.Scanner; class W implements FilenameFilter{ String lx; W(String lx){ this.lx=lx; } public boolean accept(File file,String name){ return name.endsWith(lx);//尾部查询 } } public class Test4 { public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.println("请输入路径:"); String path=reader.nextLine(); File file=new File(path); String filename[]=file.list();//将所有文件名放入数组里 for(String name:filename){ System.out.println(name); } System.out.println("输入查询后缀:"); W filew = new W(reader.nextLine()); String filename1[]=file.list(filew);//将查询后的文件名放入数组里 for(String name:filename1){ System.out.println(name); } System.out.println("请输入需要剪切的文件名:"); String cut = reader.nextLine(); File cutfile = new File(path+"\"+cut);//存入原文件 System.out.println("请输入该文件需要移动到的目录:"); String cutway = reader.nextLine(); File cutlist = new File(cutway);//存入目录 File newfile = new File(cutway+"\"+cut);//存入新目录下新文件 try { newfile.createNewFile();//创建新文件 } catch (IOException e) { e.printStackTrace(); } InputStream inputStream = null; BufferedInputStream bufferedInputStream = null; String filedata=""; Writer writer = null; BufferedWriter bufferedWriter = null; try { inputStream = new FileInputStream(cutfile); bufferedInputStream = new BufferedInputStream(inputStream); byte[] b = new byte[1024]; int count = 0; while((count = bufferedInputStream.read(b, 0, 1024))!=-1){ filedata=filedata+new String(b, 0, count);//遍历到字节存入字符串 } writer = new FileWriter(newfile); bufferedWriter = new BufferedWriter(writer); bufferedWriter.write(filedata);//字符串写入新文件 } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { bufferedInputStream.close();//关闭流 inputStream.close(); bufferedWriter.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } cutfile.delete();//删除原文件 } }
三、运行结果