(一)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");
}
}
{
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;
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;//文件字節內容
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();
}
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;
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);
}
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(); } } } }