JAVA课后做业

(一)java

1.题目要求:数组

  编写一个程序,指定一个文件夹,能自动计算出其总容量。函数

2.源码:工具

  

package file;
import java.io.File;
public class Demo {
 double getsize(File file)//use recursion calculated the size of file
 {
  if(file.exists())//judege the file isn't exist
  {
   
   if(!file.isFile()) //judge the file is reall file or folder
   {
    File[] f1 = file.listFiles();
    double s=0;
    for(File f:f1)
    {
    s+=getsize(f); 
     
    }
    return s;
    
   }
   else
   {double s=(double)file.length()/1024/1024;
    
   System.out.println(file.getName()+":"+s+"MB");
    return s;
   }
  }
  else
  {
   System.out.println("文件不存在!");
   return 0.0;
  }
  }
 
 public static void main(String[] args) {
  Demo x=new Demo();
      double n=x.getsize(new File("D:\\腾讯"));
      System.out.println("All: "+n+"MB");
 }
 }
(二)
1.题目要求:
  编写一个文件加解密程序,经过命令行完成加解密工做.
2.源码:
  
package file_encryption;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class Encryption {
 private static final int numOfEncAndDec=0x99;//加密解密密钥
 private static int dataOfFile=0;//文件字节内容
 public static void main(String[] args) {
  File srcFile=new File("E:\\新建文件夹\\text.txt");//初始化文件
  File encryptFile=new File("E:\\新建文件夹\\text1.txt"); //加密文件
  File decryptFile=new File("E:\\新建文件夹\\text2.txt");  //解密文件
 
  try {
  
   //EncFile(srcFile,encFile);  //加密操做方法
   //DecFile(encFile,decFile);//解密操做方法
   
      EncFile(srcFile,encryptFile);  //加密操做
      DecFile(encryptFile,decryptFile);
  }catch(Exception e) {
   e.printStackTrace();
  }
 }
 private static void EncFile(File srcFile,File encryptFile)throws Exception{
  if(!srcFile.exists()) {
   System.out.println("原文件不存在");
   }
  if(!encryptFile.exists()) {
   System.out.println("新建加密文件");
   encryptFile.createNewFile();//若无加密文件,新建一个加密文件
  }
  InputStream fis=new FileInputStream(srcFile);
  OutputStream fos=new FileOutputStream(encryptFile);
 
  while((dataOfFile=fis.read())>-1) {//当读到文件内容时
   fos.write(dataOfFile^numOfEncAndDec);//将读出的内容加密后写入
  }
  fis.close();
  fos.flush();
  fos.close();
 }
 private static void DecFile(File encryptFile,File decryptFile)throws Exception{
  if(!encryptFile.exists()) {
   System.out.println("加密文件不存在");
  }
  if(!decryptFile.exists()) {
   System.out.println("新建解密文件");
   decryptFile.createNewFile();
  }
  InputStream fis=new FileInputStream(encryptFile);
  OutputStream fos=new FileOutputStream(decryptFile);
 
  while((dataOfFile=fis.read())>-1) {
   fos.write(dataOfFile^numOfEncAndDec);
  }
  fis.close();
  fos.flush();
  fos.close();
 }
}
(三)
1.题目要求:
  编写一个文件分割工具,能把一个大文件分割成多个小的文件。而且能再次把它们合并起来获得完整的文件.
2.源码:
  
package divisionfile;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
//编写一个文件分割工具,能把一个大文件分割成多个小的文件。而且能再次把它们合并起来获得完整的文件
public class Division {
    public static void main(String[] args) {
        //调用cutFile()函数 传人参数分别为 (原大文件,切割后存放的小文件的路径,切割规定的内存大小)
        cutFile("E:\\新建文件夹\\text2.txt", "E:\\新建文件夹",100);
    }
 private static void cutFile(String src, String endsrc, int num) {         FileInputStream fis = null;         File file = null;         try {             fis = new FileInputStream(src);             file = new File(src);             //建立规定大小的byte数组             byte[] b = new byte[num];             int len = 0;             //name为之后的小文件命名作准备             int name = 1;             //遍历将大文件读入byte数组中,当byte数组读满后写入对应的小文件中             while ((len = fis.read(b)) != -1) {                 //分别找到原大文件的文件名和文件类型,为下面的小文件命名作准备                 String name2 = file.getName();                 int lastIndexOf = name2.lastIndexOf(".");                 String substring = name2.substring(0, lastIndexOf);                 String substring2 = name2.substring(lastIndexOf, name2.length());                 FileOutputStream fos = new FileOutputStream(endsrc + "\\\\"+ substring + "-" + name + substring2);                 //将byte数组写入对应的小文件中                 fos.write(b, 0, len);                 //结束资源                 fos.close();                 name++;             }         } catch (FileNotFoundException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         } finally {             try {                 if (fis != null) {                     //结束资源                     fis.close();                 }             } catch (IOException e) {                 e.printStackTrace();             }         }     } }
相关文章
相关标签/搜索