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
版权声明:本文标题:JavaSE 面向对象程序设计进阶 IO流练习 拷贝文件夹 文件加密 修改文件中的数据 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729638804a1208464.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论