IO流:
FileOutputStream
FileInputStream
字节流复制文件
二进制流用字节流输入输出
public void newLine():根据系统平台写入行分隔符
public String readLine():一次读取一行数据
代码操作【练习】
1 package cn.itcast01; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.FilenameFilter; 9 import java.io.IOException; 10 11 12 /* 13 * 需求:将指定目录下指定类型文件复制到指定目录 14 * 15 * 思路: 16 * A:封装源目录 17 * B:遍历源目录,获取每一个符合指定类型的文件 18 * C:更名复制: 19 * a:先更名,后复制; 20 * b:复制后统一更名 21 * 22 * 提升:多级目录下的复制 23 */ 24 public class FileCopyDemo2 { 25 public static void main(String[] args) throws IOException { 26 //A:封装源目录 27 File file = new File("D:\java\JavaCode\day1"); 28 29 //B:遍历源目录,获取每一个符合指定类型的文件 30 File[] files = file.listFiles(new FilenameFilter(){ 31 @Override 32 public boolean accept(File dir, String name) { 33 return new File(dir,name).isFile() && name.endsWith(".java"); 34 } 35 }); 36 37 //创建目录 38 File destFile = new File("d:\jad"); 39 if(!destFile.exists()){ 40 boolean flag = destFile.mkdir(); 41 System.out.println("在没有目标目录时,创建目录:"+flag); 42 } 43 44 //C:更名复制:复制后统一命名 45 for(File fileTemp:files){ 46 String name = fileTemp.getName(); //获取原有指定文件名字 47 String newName = name.replace(".java", ".jad"); //需要创建目标目录 48 File newFile = new File(destFile,newName); //创建目标目录 49 //复制内容 50 BufferedReader br = new BufferedReader(new FileReader(fileTemp)); 51 BufferedWriter bw = new BufferedWriter(new FileWriter(newFile)); 52 53 char[] chs = new char[1024]; 54 int len = 0; 55 while((len = br.read(chs))!=-1){ 56 bw.write(chs,0,len); 57 bw.flush(); 58 } 59 //关闭资源 60 bw.close(); 61 br.close(); 62 } 63 } 64 }
1 package cn.itcast03; 2 3 import java.io.BufferedReader; 4 import java.io.BufferedWriter; 5 import java.io.File; 6 import java.io.FileReader; 7 import java.io.FileWriter; 8 import java.io.IOException; 9 10 /** 11 * 遍历复制指定目录 12 * @author itcast 13 * 14 */ 15 public class FileCopyDemo { 16 public static void main(String[] args) throws IOException { 17 //封装File对象 18 File srcFile = new File("D:\java\JavaCode\day2"); 19 File destFile = new File("D:\test"); 20 if(!destFile.exists()){ 21 destFile.mkdirs(); 22 } 23 //获取指定目录下的File对象数组 24 File[] arrayFiles = srcFile.listFiles(); 25 //遍历,并进行判断 26 char[] chs = new char[1024]; 27 int len = 0; 28 for(File arrayFile:arrayFiles){ 29 if(arrayFile.isFile()){ 30 String name = arrayFile.getName(); // 获取原有指定文件名字 31 File finalFile = new File(destFile, name); // 创建目标目录 32 //创建复写输入输出流 33 BufferedReader br = new BufferedReader(new FileReader(arrayFile)); 34 BufferedWriter bw = new BufferedWriter(new FileWriter(finalFile)); 35 36 while((len = br.read(chs))!=-1){ 37 bw.write(chs,0,len); 38 bw.flush(); 39 } 40 41 //关闭资源 42 bw.close(); 43 br.close(); 44 } 45 } 46 } 47 }