Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; public class Copy_java_To_txt { public static void main(String[] args) { /* * 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件 */ try { StringBuffer sb = new StringBuffer(); BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream("e:\\neck\\test.java"), "utf-8")); String str; while ((str = br.readLine()) != null) { System.out.println("从文件中读取了一行..."); sb.append(str); sb.append("\r\n"); } System.out.println("文件读取到容器成功"+"\r\n"+sb.toString()); String dir="e:\\apple"; String fileName="test.txt"; File file=new File(dir,fileName); if(!file.getParentFile().exists()) { System.out.println(file.getParentFile()+"目录不存在,即将创建..."); file.getParentFile().mkdirs(); }else { System.out.println("目录存在,不用创建..."); } BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"utf-8")); bw.write(sb.toString()); bw.flush(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
上面是指定哪个文件进行复制
下边是搜索出所有的以.java结尾的文件复制到另一个文件夹并改名
需要用到下边的两种列表
list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组
listFiles()方法是返回某个目录下所有文件和目录的绝对路径,返回的是File数组
package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; public class Copy_java_To_txt { public static void main(String[] args) { /* * 把一个文件夹下的.java文件(需要搜索所有以.java结尾的文件)复制到另一个文件夹下的.txt文件(改名为.txt的文件) */ File[] files = null; try { StringBuffer sb = new StringBuffer(); File dir_source = new File("e:\\neck"); File dir_destination = new File("e:\\apple"); if(!dir_destination.exists()) { dir_destination.mkdirs(); } if (dir_source.exists()) { System.out.println("搜索地址存在..."); if (dir_source.isDirectory()) { System.out.println("此地址是一个目录..."); files = dir_source.listFiles(new FileFilter() { @Override public boolean accept(File arg0) { return arg0.getName().endsWith(".java"); } }); } else { System.out.println("此地址不是目录..."); } } else { System.out.println("搜索地址不存在..."); } for (File f : files) { System.out.println(f); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f), "utf-8")); String str; while ((str = br.readLine()) != null) { System.out.println("从文件中读取了一行..."); sb.append(str); sb.append("\r\n"); } System.out.println("一个 文件读取到容器成功" + "\r\n" + sb.toString()); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(new File(dir_destination, f.getName().replaceAll(".java", ".txt"))), "utf-8")); bw.write(sb.toString()); bw.flush(); sb.delete(0, sb.length());//也可以sb.setLength(0);sb= new StringBuffer();都可以清空StringBuffer } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Never waste time any more, Never old man be a yong man