不爱生姜不吃醋⭐️
如果本文有什么错误的话欢迎在评论区中指正
与其明天开始,不如现在行动!
本文内容是有关于Java中IO流对于文件的操作,主要包括:文件夹的拷贝,文件加密和解密,修改文件中的数据。这三个小练习能加深对IO流的理解和运用。
使用IO流把A目录下的整个文件夹拷贝到B目录下
public class CopyFile {
public static void main(String[] args) throws IOException {
File f1=new File("D:\\AAAJavaStudy\\Java SE");
File f2=new File("D:\\AAAJavaStudy\\java");
CopyOf(f1,f2);
}
private static void CopyOf(File src, File dest) throws IOException {
dest.mkdirs();
File[] files = src.listFiles();
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;
if ((len = fis.read(bytes)) != -1){
fos.write(bytes,0,len);
}
fis.close();
fos.close();
}else {
CopyOd(file,new File(dest,file.getName()));
}
}
}
}
为了文件的安全性,需要对原始文件进行加密存储,再使用的时候在对其进行解密处理。
加密原理:对原始文件的每个字节数据进行更改,然后将更改后的数据存储到新的文件中。
解密原理:读取加密之后的文件,按照加密的规则反向操作将其变为原始文件。
public class Test1 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("Demo\\src\\Day30\\picture.png");
FileOutputStream fos =new FileOutputStream("Demo\\src\\Day13\\clock.png");
int a;
while ((a = fis.read()) != -1){
fos.write(a ^ 2);
}
fis.close();
fos.close();
}
}
实现解密只需要修改一下路径即可
public class Test2 {
public static void main(String[] args) throws IOException {
FileInputStream fis = new FileInputStream("Demo\\src\\Day13\\clock.png");
FileOutputStream fos =new FileOutputStream("Demo\\src\\Day13\\password.png");
int a;
while ((a = fis.read()) != -1){
fos.write(a ^ 2);
}
fis.close();
fos.close();
}
}
文本文件中有以下数据:2-1-9-3-7-8
将文件中的数字进行排序变为:1-2-3-7-8-9
public class Test {
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("Demo\\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[] strings = str.split("-");
ArrayList<Integer> list = new ArrayList<>();
for (String string : strings) {
int i = Integer.parseInt(string);
list.add(i);
}
Collections.sort(list);
FileWriter fw = new FileWriter("Demo\\b.txt");
for (int i = 0; i < list.size(); i++) {
if (i < list.size() - 1){
fw.write(list.get(i) + "-");
}else {
fw.write(list.get(i) + "");
}
}
fw.close();
}
}
文章中代码的编写使用的都是Java的IO流的知识,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家!!!