05_流与文件——课后作业
1、编写一个程序,指定一个文件夹,能自动计算出其总容量
1 package renwu1; 2 3 4 import java.io.File; 5 import java.util.ArrayList; 6 7 public class test1 { 8 long size = 0; 9 static ArrayList<String> filelist = new ArrayList<String>(); 10 11 void getFiles(String file_address) { 12 File root = new File(file_address); 13 File[] files = root.listFiles(); 14 for(File file:files) { 15 if(file.isDirectory()) { 16 getFiles(file.getAbsolutePath());//通过递归,得到某一路径下所有的文件目录 17 filelist.add(file.getAbsolutePath()); 18 } 19 else { 20 size = file.getAbsolutePath().length(); 21 } 22 } 23 System.out.println("文件夹的容量为:"+size); 24 } 25 26 public static void main(String[] args) { 27 test1 c1 = new test1(); 28 String filelujing = "E:\\课程作业\\java程序设计\\Java第一次课"; 29 c1.getFiles(filelujing); 30 } 31 32 }
2、编写一个文件加解密程序,通过命令行完成加解密工作
1 package renwu2; 2 3 import java.io.File; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 import java.io.FileInputStream; 7 import java.io.FileOutputStream; 8 //编写一个文件加解密程序,通过命令行完成加解密工作 9 public class test2 { 10 private static final int numOfEncAndDec=0x99;//加密解密密钥 11 private static int dataOfFile=0;//文件字节内容 12 13 public static void main(String[] args) { 14 File srcFile=new File("E:\\java的txt文本\\原文件.txt");//初始化文件 15 File encFile=new File("E:\\java的txt文本\\解密后.txt"); //加密文件 16 File decFile=new File("E:\\java的txt文本\\加密后.txt"); //解密文件 17 18 try { 19 EncFile(srcFile,decFile); //加密操作 20 DecFile(decFile,encFile); 21 }catch(Exception e) { 22 e.printStackTrace(); 23 } 24 } 25 private static void EncFile(File srcFile,File encFile)throws Exception{ 26 if(!srcFile.exists()) { 27 System.out.println("source file not exixt"); 28 } 29 if(!encFile.exists()) { 30 System.out.println("encrypt file created"); 31 encFile.createNewFile();//若无加密文件,新建一个加密文件 32 } 33 InputStream fis=new FileInputStream(srcFile); 34 OutputStream fos=new FileOutputStream(encFile); 35 36 while((dataOfFile=fis.read())>-1) {//当读到文件内容时 37 fos.write(dataOfFile^numOfEncAndDec);//将读出的内容加密后写入 38 } 39 fis.close(); 40 fos.flush(); 41 fos.close(); 42 } 43 private static void DecFile(File encFile,File decFile)throws Exception{ 44 if(!encFile.exists()) { 45 System.out.println("encrypt file not exixt"); 46 } 47 if(!decFile.exists()) { 48 System.out.println("decrypt file created"); 49 decFile.createNewFile(); 50 } 51 InputStream fis=new FileInputStream(encFile); 52 OutputStream fos=new FileOutputStream(decFile); 53 54 while((dataOfFile=fis.read())>-1) { 55 fos.write(dataOfFile^numOfEncAndDec); 56 } 57 fis.close(); 58 fos.flush(); 59 fos.close(); 60 } 61 62 }
3、编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件。