第九周动手动脑
计算指定文件大小:
package shangke.dijiuzhou; import java.io.File; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class Diaoyong { public int enen(String dao) { int length; int flag=1; Path path=Paths.get(dao); try { DirectoryStream<Path> children=Files.newDirectoryStream(path); for(Path child:children) { flag=1; String lujing; lujing=child.toString(); length=lujing.length(); if(length==0) { return 0; } char sta[]=new char[1000]; sta=lujing.toCharArray(); for(int i=0;i<length;i++) { if(sta[i]=='\\') { sta[i]='/'; } if(sta[i]=='.') { flag=0; } } lujing=String.valueOf(sta); System.out.println(lujing); if(flag==1) { enen(lujing); } else { DaXiao(lujing); System.out.println("*********************************"); } } } catch(Exception e) { } return 0; } void DaXiao(String filestr) { File file = new File(filestr); long size=file.length(); System.out.println("文件大小为"+size+"字节"); } public static void main(String[] args) { { Diaoyong sta=new Diaoyong(); sta.enen("H:/haha"); } } }
这个是通过Path获得文件的名称,然后通过file.length()函数获得文件大小
对文件进行加密:
package shangke.dijiuzhou; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; import java.util.StringTokenizer; public class JiaMi { public static void main(String[] args) { String sta; try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw /* 写入Txt文件 */ File writename = new File("H:\\haha\\fuben0.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件 writename.createNewFile(); // 创建新文件 BufferedWriter out = new BufferedWriter(new FileWriter(writename)); /* 读入TXT文件 */ String pathname = "H:\\haha\\wenben0.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径 File filename = new File(pathname); // 要读取以上路径的input。txt文件 InputStreamReader reader = new InputStreamReader( new FileInputStream(filename)); BufferedReader br = new BufferedReader(reader); String line = ""; line = br.readLine(); while (line != null) { int b=line.length(); sta=""; for(int i=0;i<b;i++) { System.out.print(line.charAt(i)-10); sta=sta+(line.charAt(i)-10); } out.write(sta+"\r\n"); // System.out.println(); //System.out.println("**********"); //System.out.println(line); line = br.readLine(); // 一次读入一行数据 } out.flush(); // 把缓存区内容压入文件 out.close(); // 最后记得关闭文件 */ } catch (Exception e) { e.printStackTrace(); } } }
这是英文文本加密对比
就是利用Ascll值来控制符号通过对符号进行固定的增加减少Ascll值,或者有规律的增加或减少。
package shangke.dijiuzhou; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; public class wenjianfenge { public static void main(String[] args) { String sta; int sum=0; int n=0; BufferedWriter out = null; try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw /* 写入Txt文件 */ /* 读入TXT文件 */ String pathname = "H:\\gaga\\yuanwenjian.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径 File filename = new File(pathname); // 要读取以上路径的input。txt文件 InputStreamReader reader = new InputStreamReader( new FileInputStream(filename)); BufferedReader br = new BufferedReader(reader); String line = ""; line = br.readLine(); while (line != null) { if(sum%30==0) { File writename = new File("H:\\gaga\\fuben"+n+".txt"); // 相对路径,如果没有则要建立一个新的output。txt文件 writename.createNewFile(); // 创建新文件 out = new BufferedWriter(new FileWriter(writename)); n++; } out.write(line+"\r\n"); sum++; if(sum%30==0) { out.flush(); out.close(); } // System.out.println(); //System.out.println("**********"); //System.out.println(line); line = br.readLine(); // 一次读入一行数据 } out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } }
上面的是将一个文本文件进行分割成若干个小文件
package shangke.dijiuzhou; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class wenjiandiejia { public int enen(String dao) { int length; int flag=1; Path path=Paths.get(dao); try { File writename = new File("H:\\gaga\\diejiawenjian.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件 writename.createNewFile(); // 创建新文件 BufferedWriter out = new BufferedWriter(new FileWriter(writename)); DirectoryStream<Path> children=Files.newDirectoryStream(path); for(Path child:children) { flag=1; String lujing; lujing=child.toString(); length=lujing.length(); if(length==0) { return 0; } char sta[]=new char[1000]; sta=lujing.toCharArray(); for(int i=0;i<length;i++) { if(sta[i]=='\\') { sta[i]='/'; } if(sta[i]=='.') { flag=0; } } lujing=String.valueOf(sta); //System.out.println(lujing); if(flag==1) { enen(lujing); } else { xie(lujing,out); System.out.println("*********************************"); } } out.flush(); out.close(); } catch(Exception e) { } return 0; } void xie(String lujing,BufferedWriter out) { try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw /* 写入Txt文件 */ /* 读入TXT文件 */ String pathname = lujing; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径 File filename = new File(pathname); // 要读取以上路径的input。txt文件 InputStreamReader reader = new InputStreamReader( new FileInputStream(filename)); BufferedReader br = new BufferedReader(reader); String line = ""; line = br.readLine(); while (line != null) { out.write(line+"\r\n"); // System.out.println(); //System.out.println("**********"); //System.out.println(line); line = br.readLine(); // 一次读入一行数据 } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { { wenjiandiejia sta=new wenjiandiejia(); sta.enen("H:/gaga"); } } }
这是对文件进行叠加,利用的是Path遍历文件中的文本文件,然后读取各个子文件的内容写入叠加文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!