• 太烂的牌也要打完只为自己也不是为了其他什么原因。


    day17_io02

    1.上课代码敲一遍

    2.读取一个文件,这个文件中有随机的一些数字字符,统计这些数字有几个偶数,几个奇数,并且追加写入到该文件末尾。

    例如:
    a.txt文件:
    3241256364789629090126581212515
    奇数:xx个
    偶数:xx个

    package com.cskaoyan._17day;
    
    import java.io.*;
    import java.util.ArrayList;
    
    public class Exercise {
        public static void main(String[] args) throws IOException {
            try {
                BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(new File("a.txt"))));
    
                String lineTxt="3241256364789629090126581212515";
    
                int a = 0;
                ArrayList<String> oddnumber=new ArrayList<>();
                ArrayList<Object> evennumber=new ArrayList<>();
                while ((lineTxt=br.readLine())!=null){
                    a++;
                    if (a % 2 == 0) {
                        oddnumber.add(lineTxt);
                    } else {
                        evennumber.add(lineTxt);
                    }
                }
                br.close();
            }catch (Exception e){
            System.out.println("read error: " + e);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    3.在一个磁盘的文件里保存26个英文小写字母(乱序),将他们读入内存中,进行排序,把排好顺序的数再重新追加写到磁盘的该文件中。

    package com.cskaoyan._17day;
    import java.io.*;
    public  class Exercise02 {
        public static void main(String[] args) throws IOException {
            FileInputStream sc = new FileInputStream("a.txt");
            Reader reader = new InputStreamReader( sc );
    
            FileOutputStream s = new FileOutputStream("a.txt", true);
            Writer writer=new OutputStreamWriter( s );
    
            char[] chars = new char[1024];
            int len;
            while((len = reader.read(chars)) != -1){
                bubbleSort(chars,len);
                writer.write("\n");
                writer.write(chars,0,len);
            }
            reader.close();
            writer.close();
        }
    
        private static void bubbleSort(char arr[] , int len) {
            for (int i=0; i < len -1; i++) {
                for (int j=0; j < len -1; j++) {
                    if (arr[j] > arr[j + 1]){
                        char temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    4.递归查找指定目录中(包括子目录中),所有的.java文件,并且,把所有这些找到的java文件,复制(是复制不是移动)到一个指定的目录下

    package com.cskaoyan._17day;
    
    import java.io.*;
    import java.util.ArrayList;
    
    public class Exercise03 {
        public static void main(String[] args) {
    
            File sc = new File("D:\\");
            File file = new File("D:\\ ");
            file.mkdir();
            String targetDir = "";
            eachFile(sc);
            //复制所有。java文件到目标文件夹
            for (int i=0; i < file.length(); i++) {
                FileInputStream input = null;
                FileOutputStream output = null;
                try{
                    input = new FileInputStream(file.get(i));
                    InputStream inbuffer = new BufferedInputStream(input);
                    //目标文件由输出流自己创建
                    output = new FileInputStream(targetDir + file.get(i).getName());
                    OutputStream outbuffer=new BufferedOutputStream(output);
                    //利用字节缓冲流复制文件
                    byte[] b = new byte[1024];
                    int len;
                    while ((len = inbuffer.read(b)) != -1){
                        outbuffer.write(b,0,len);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    closeQuietly(input);
                    closeQuietly(output);
                }
    
            }
    
    
        }
    
        public static void closeQuietly(Closeable closeable){
            try{
                if (closeable != null){
                    closeable.close();
                }
            } catch (IOException e){
                e.printStackTrace();
            }
        }
        
        public static ArrayList<File> files = new ArrayList<>();
        
        //遍历这个文件夹内的所有子目录和文件
        public static void eachFile(File file){
            try{
                File[] targetFile = file.listFiles();
                for (int i=0; i < targetFile.length; i++) {
                    if (targetFile[i].isDirectory()){
                        eachFile(targetFile[i]);
                    }else{
                        //找到所有的java文件并且放到集合中
                        if (targetFile[i].getName().endsWith("java")){
                            file.add(targetFile[i]);
                        }
                    }
                    
                }
            } catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74

    5.开始写阶段6(慢慢写不急着交,周末也可以写)

  • 相关阅读:
    如何用 Python 做一个简单的翻译工具?
    C语言 | Leetcode C语言题解之第49题字母异位词分组
    mybatis foreach 居然是拼接长语句,而不是用PreparedStatement
    springboot高校专业招生信息管理系统jsp001
    k8s学习
    【数据结构】C++实现红黑树
    Docker容器网络配置
    SpringBoot SpringBoot 基础篇 4 基于 SpringBoot 的SSMP 整合案例 4.10 表现层标准开发
    智能供应链管理系统数字化供应链全周期管理,提升企业市场竞争力
    ChaosBlade Java 场景性能优化,那些你不知道的事
  • 原文地址:https://blog.csdn.net/weixin_53073551/article/details/134068294