• Java基础--第二十一天


    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 }
  • 相关阅读:
    洛谷 P4707 重返现世
    多项式总结&多项式板子
    线性常系数齐次递推
    洛谷 P2791 幼儿园篮球题
    CF Gym 102028G Shortest Paths on Random Forests
    洛谷 P4705 玩游戏
    [NOI2018]冒泡排序
    PKUSC2019 改题记录
    PKUSC2019 没约记
    Codeforces Round #557 题解【更完了】
  • 原文地址:https://www.cnblogs.com/zhidianhcuan/p/4405467.html
Copyright © 2020-2023  润新知