admin管理员组

文章数量:1653285

目录

3个综合练习

拷贝

加密

解密

修改文件中的数据 

3个综合练习

字节流 拷贝任意类型的文件

字符流 读取纯文本文件中的数据 往纯文本文件中写出数据

拷贝


 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Main{
    public static void main(String[] args) throws IOException {

        //表示对象的所在地
        File src=new File("D:\\aaa");

        //表示对象的目的地
        File dest=new File("D:\\bbb");

        //调用方法开始拷贝
        copydir(src,dest);

    }
    private static void  copydir(File src,File dest) throws IOException{

        dest.mkdirs();//如果dest文件夹不存在就创建文件夹

        //1.进入数据源 把数据源放到数组里面
        File[] files=src.listFiles();

        //2.遍历数组
        for(File file:files){
            if(file.isFile()){
                //是文件就拷贝

                //字节流用于拷贝
                FileInputStream fis=new FileInputStream(file);
                //拷贝到新文件夹里面
                FileOutputStream fos=new FileOutputStream(new File(dest,file.getName()));

                byte[] bytes=new byte[1024];//字节数组
                int len ;//表示当前读取到了多少个字节

                while ((len=fis.read(bytes))!=-1)
                    fos.write(bytes,0,len);//从0开始一共len个元素写到字节数组里面

                fos.close();
                fis.close();
            }
            else {
                //是文件夹就递归
                copydir(file,new File(dest,file.getName()));
            }
        }
    }
}

异或 ^

两边相同 false

两边不同 true

先转化成二进制

100:1100100

10:1010

则为1101110 100^10=110 110^10=100

如果一个数字异或另外一个数字两次,那么还是本身

加密

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {

        //创建对象关联原始文件
        FileInputStream fis=new FileInputStream("untitled\\a.txt");

        //创建对象关联加密文件
        FileOutputStream fos=new FileOutputStream("untitled\\b.txt");

        //加密处理
        int b;
        while((b=fis.read())!=-1)
            fos.write(b^2);

        fos.close();
        fis.close();

    }

}

解密

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {

    public static void main(String[] args) throws IOException {

        //创建对象关联被加密的文件
        FileInputStream fis=new FileInputStream("untitled\\b.txt");

        //创建对象关联解密后的文件
        FileOutputStream fos=new FileOutputStream("untitled\\c.txt");

        //解密处理
        int b;
        while((b=fis.read())!=-1)
            fos.write(b^2);

        fos.close();
        fis.close();

    }

}

修改文件中的数据 

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {

    public static void main(String[] args) throws IOException {

        //读取数据
        FileReader fr=new FileReader("untitled\\a.txt");
        StringBuilder sb=new StringBuilder();

        int ch;
        while((ch=fr.read())!=-1)
            sb.append((char)ch);

        fr.close();
        System.out.println(sb);

        //切割数据
        String str=sb.toString();
        String arr[]=str.split("-");

        //把数据放到集合里面去
        List<Integer>list=new ArrayList<>();
        for (String s : arr) {
            int i=Integer.parseInt(s);
            list.add(i);
        }

        //排序
        Collections.sort(list);

        //把集合数据写到文件里面去
        FileWriter fw=new FileWriter("untitled\\c.txt");
        for (int i = 0; i < list.size(); i++) {
            if(i==list.size()-1){
                fw.write(list.get(i)+" ");
                //write方法直接写入整数的话会转换成字符 但是转换成字符串就会原样写出
            }else {
                fw.write(list.get(i)+"-");
            }
        }
        fw.close();

    }

}
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Function;

public class Main {

    public static void main(String[] args) throws IOException {

        //读取数据
        FileReader fr=new FileReader("untitled\\a.txt");
        StringBuilder sb=new StringBuilder();

        int ch;
        while((ch=fr.read())!=-1)
            sb.append((char)ch);

        fr.close();
        System.out.println(sb);

        //stream流
        Integer[] arr = Arrays.stream(sb.toString()
                        .split("-"))
                        .map(Integer::parseInt)
                        .sorted()
                        .toArray(Integer[]::new);

        //写出数据
        FileWriter fw=new FileWriter("untitled\\b.txt");

        String s1=Arrays.toString(arr).replace(", ","-");//替换
        String s2=s1.substring(1,s1.length()-1);//截取

        fw.write(s2);

        fw.close();
    }

}

个人号推广

博客主页

朱道阳-CSDN博客

Web后端开发

https://blog.csdn/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482

Web前端开发

https://blog.csdn/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482

数据库开发

https://blog.csdn/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482

项目实战

https://blog.csdn/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482

算法与数据结构

https://blog.csdn/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482

计算机基础

https://blog.csdn/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482

回忆录

https://blog.csdn/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482

本文标签: 进阶程序设计面向对象文件夹文件加密