Java第14周作业集
一、题目
编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件,之后将这些文件中的某一个文件剪切到另外一个目录中。
二、源代码
package com;
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 FileType implements FilenameFilter{
String type;
F(String type){
this.type = type;
}
public boolean accept(File dir, String name) {
return name.endsWith(type);//尾部匹配
}
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个目录:");
String str1=sc.nextLine();//原目录
File file=new File(str1);
String[] all = file.list();//调用无参list方法获取该目录下全部文件
System.out.println("该目录下文件为:");
for(int i=0;i<all.length;i++){
System.out.print(all[i]+"\n");
}
System.out.println("请输入文件类型:");
FileType filetype= new FileType(sc.nextLine());//输入的文件类型
String fileList[]=file.list(filetype);
//显示该目录下符合该类型的所有文件
System.out.println("该目录下有"+fileList.length+"符合该类型个文件");
for(int i=0;i<fileList.length;i++) {
System.out.println(fileList[i]);
}
System.out.println("请输入要剪切的文件:");
String str2=sc.nextLine();//存放文件名
File filecut=new File(str1+"\\"+str2);//之前的目录f\文件名s
System.out.println("请输入要剪切到的目录:");
String str3=sc.nextLine();//新目录
File filePath=new File(str3);
File newFile=new File(str3+"\\"+str2);//存入新的
try {
newFile.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
InputStream inputStream=null;
BufferedInputStream bufferedInputStream=null;
String data="";//内容暂存器
Writer writer=null;
BufferedWriter bufferedWriter=null;
try {
inputStream = new FileInputStream(filecut);
bufferedInputStream = new BufferedInputStream(inputStream);
byte[] n = new byte[1024];//存储内容
int count = 0;//长度
while((count = bufferedInputStream.read(n,0,1024))!=-1){
data=data+new String(n,0,count);//遍历到字节存入字符串
}
writer = new FileWriter(newFile);
bufferedWriter = new BufferedWriter(writer);
bufferedWriter.write(data);//将内容写入新文件
} 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();
}
}
System.out.println("剪切成功");
filecut.delete();//删除原文件
}
}
三、运行结果