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();             }         }     } }
相關文章
相關標籤/搜索