一、题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。ps:第一次课请先完成前一部分。
二、代码
package cn; 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 FF implements FilenameFilter{ String str=null; FF(String str){ //构造方法 this.str=str; } public boolean accept(File dir,String name){ //实现accept方法 return name.endsWith(str); } } public class Test { public static void main(String[] args) { Scanner reader=new Scanner(System.in); System.out.println("输入文件目录路径:"); String str1=reader.nextLine(); File f=new File(str1); System.out.println("输入要找的文件后缀:"); String str2=reader.nextLine(); FilenameFilter a= new FF(str2); String str3[] = f.list(a); for(int i = 0 ; i < str3.length ; i++){ System.out.println(str3[i]); } System.out.println("输入要剪切的文件名:"); String cut = reader.nextLine(); File f1=new File(str1+"\\"+cut); System.out.println("请输入该文件需要移动到的目录:\n"); String cut1=reader.nextLine(); File f2=new File(cut1); File newf=new File(cut1+"\\"+cut); try { newf.createNewFile(); } catch (IOException e) { e.printStackTrace(); } InputStream inputStream = null; BufferedInputStream bufferedInputStream = null; String filedata=""; Writer writer = null; BufferedWriter bufferedWriter = null; try { inputStream = new FileInputStream(f1); 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(newf); 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(); } } f1.delete(); } }
三、运行结果
package cn;
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 FF implements FilenameFilter{String str=null;FF(String str){ //构造方法this.str=str;}public boolean accept(File dir,String name){ //实现accept方法return name.endsWith(str);}}
public class Test {public static void main(String[] args) {Scanner reader=new Scanner(System.in);System.out.println("输入文件目录路径:");String str1=reader.nextLine();File f=new File(str1);System.out.println("输入要找的文件后缀:");String str2=reader.nextLine();FilenameFilter a= new FF(str2);String str3[] = f.list(a);for(int i = 0 ; i < str3.length ; i++){System.out.println(str3[i]); }System.out.println("输入要剪切的文件名:"); String cut = reader.nextLine(); File f1=new File(str1+"\\"+cut); System.out.println("请输入该文件需要移动到的目录:\n"); String cut1=reader.nextLine(); File f2=new File(cut1); File newf=new File(cut1+"\\"+cut); try { newf.createNewFile(); } catch (IOException e) { e.printStackTrace(); } InputStream inputStream = null; BufferedInputStream bufferedInputStream = null; String filedata=""; Writer writer = null; BufferedWriter bufferedWriter = null; try { inputStream = new FileInputStream(f1); 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(newf); 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(); } } f1.delete();}}