• java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数


    package com.swift.jinji;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    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.util.Scanner;
    
    /*从控制台获取输入的文件目录然后将该目录(包含子目录)下的.java文件复制到e:/java文件夹中,并统计java文件的个数.
    提示:如果有相同的名称的文件,如果两个Test01.java,则拷贝到目标文件夹时只能有一个Test01.java,另一个Test01.java要修改为另一个名称:该名称可随机生成,只要不重复即可.*/
    
    
    public class CopyJavaSameName {
    
        public static void main(String[] args) {
    
            File destDir=new File("e:/java");
            if(!destDir.exists()) {
                System.out.println("目标目录不存在,即将建立.");
                destDir.mkdirs();
            }
            File srcDir=getDir();
            copyDir(srcDir,destDir);
            System.out.println("复制完成");
        }
    
        private static void copyDir(File srcDir, File destDir) {
            int i=0;
            File[] files=srcDir.listFiles(new FileFilter() {
    
                @Override
                public boolean accept(File pathname) {
                    if(pathname.getName().toLowerCase().endsWith(".java"))
                    return true;
                    return false;
                }});
            for(File file:files) {
                String name=file.getName();
                File destFile=new File(destDir,name);
                if(!destFile.exists()) {
                    copyFile(file,destFile);
                }else {
                    
                    String nameG=destFile.getName()+"-副本";
                    File destFileG=new File(destDir,nameG);
                    copyFile(file,destFileG);
                }
                
            }
        }
    
        private static void copyFile(File file, File destFile) {
    
            BufferedOutputStream bos=null;
            BufferedInputStream bis=null;
            try {
                bos=new BufferedOutputStream(new FileOutputStream(destFile));
                bis=new BufferedInputStream(new FileInputStream(file));
                byte[] buf=new byte[1024];
                int len;
                while((len=bis.read(buf))!=-1) {
                    bos.write(buf, 0, len);
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private static File getDir() {
            
            Scanner scan=new Scanner(System.in);
            System.out.println("请输入一个目录");
            String str=scan.nextLine();
            File dir=new File(str);
            if(!dir.exists()) {
                System.out.println("目录不存在.");
            }
            if(!dir.isDirectory()) {
                System.out.println("不是一个目录");
            }
            return dir;
        }
    
    }

    对加密文件计算字母个数

    package com.swift.jinji;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Comparator;
    import java.util.Map;
    import java.util.Scanner;
    import java.util.TreeMap;
    
    /*在d盘目录下有一个加密文件a.txt(文件里只有英文和数字),密码是“heima”
    当密码输入正确时才能读取文件里的数据。现要求用代码来模拟读取文件的过程,并统计文件里各个字母出现的次数,并把统计结果按照如下格式输出到d盘的count.txt中。
    a:2个
    b:3个
    c:4个
    ............*/
    
    
    public class PasswordFileCharacterNums2 {
    
        public static void main(String[] args) {
    
            File passwordFile=new File("d:/stu.txt");
            String password="heima";
            readFile(passwordFile,password);
            
        }
    
        private static void readFile(File passwordFile, String password) {
    
            Scanner scan =new Scanner(System.in);
            while(true) {
                
                System.out.println("请输入一个正确的文件密码");
                String passwordInput=scan.nextLine();
                if(passwordInput.equals(password)) {
                    System.out.println("文件密码正确.");
                    break;
                }
            }
            BufferedReader br=null;
            BufferedWriter bw=null;
            try {
                br=new BufferedReader(new FileReader(passwordFile));
                File destFile=new File("count.txt");
                bw=new BufferedWriter(new FileWriter(destFile));
                Map<Character,Integer> map=new TreeMap<>(new Comparator<Character>() {
                    @Override
                    public int compare(Character o1, Character o2) {
                        int num=(int)o1-(int)o2;
                        return num;
                    }
                });
                String line;
                while((line=br.readLine())!=null) {
                    char[] chars=line.toCharArray();
                    for(char c:chars) {
                        if(!map.containsKey(c)) {
                            map.put(c, 1);
                        }else {
                            map.put(c, map.get(c)+1);
                        }
                    }
                }
                System.out.println(map);
                for(Character c:map.keySet()) {
                    bw.write("   "+c+":"+map.get(c)+"个");
                    bw.newLine();
                    bw.flush();
                }
                System.out.println("map输出成功");
                
                
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch(IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    bw.close();
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }
  • 相关阅读:
    创建一个带有Event Receiver的List Definition
    查看安全日志的方式
    SysWOW64是个什么文件夹?
    IIS Log的位置
    IIS的metabase文件的位置
    Server Error in '哪一个' Application, 值得注意哦
    记录一个在SharePoint的代码中提升运行权限的方法
    Rollup and cube
    杀死数据库连接
    VS2005最近项目和最近文件清除
  • 原文地址:https://www.cnblogs.com/qingyundian/p/8511669.html
Copyright © 2020-2023  润新知