体育资讯网

您现在的位置是:首页 > 足球教学 > 正文

足球教学

Java毕设源码压缩密码的简单介绍

hacker2022-07-09 09:31:23足球教学64
本文目录一览:1、毕业设计!用Java设计一个文件的压缩与解压缩软件!跪求!2、

本文目录一览:

毕业设计! 用Java设计一个文件的压缩与解压缩软件! 跪求!

这是我以前写的一个,你看看,应该和这个差不多。。。。

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.IOException;

import java.util.zip.ZipEntry;

import java.util.zip.ZipInputStream;

import java.util.zip.ZipOutputStream;

import javax.swing.JFrame;

public class TestZip extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

String doc;

long doczipsize = 0;

TextArea ta;

TextField infotip;

public void init() {

setLocation(200,150);

setTitle("文件压缩器");

setSize(600,450);

BorderLayout b = new BorderLayout();

setLayout(b);

MenuBar menubar = new MenuBar();

setMenuBar(menubar);

Menu fileMenu = new Menu("File",true);

Menu aboutMenu = new Menu("About",true);

MenuItem mi1 = new MenuItem("打开");

MenuItem mi2 = new MenuItem("压缩");

MenuItem mi3 = new MenuItem("解压");

MenuItem mi4 = new MenuItem("退出");

MenuItem mi0 = new MenuItem("关于");

fileMenu.add(mi1);

fileMenu.add(mi2);

fileMenu.add(mi3);

fileMenu.add(mi4);

aboutMenu.add(mi0);

menubar.add(fileMenu);

menubar.add(aboutMenu);

mi1.addActionListener(this);

mi2.addActionListener(this);

mi3.addActionListener(this);

mi4.addActionListener(this);

mi0.addActionListener(this);

ta = new TextArea();

add(BorderLayout.CENTER,ta);

infotip = new TextField();

add(BorderLayout.SOUTH,infotip);

setVisible(true);

}

private void newFile() {

FileDialog dlg = new FileDialog(this,"打开",FileDialog.LOAD);

dlg.setVisible(true);

String filename = dlg.getDirectory() + dlg.getFile();

try {

File f = new File(filename);

FileReader freader = new FileReader(f);

char[] buffer = new char[4096];

int length;

ta.setText("");

while((length = freader.read(buffer)) != -1) {

String s = new String(buffer,0,length);

doc += s;

}

freader.close();

doczipsize = f.length();

showTextInfo();

}catch (IOException e) {

e.printStackTrace();

}

}

private void openFile() {

FileDialog dlg = new FileDialog(this,"解压",FileDialog.LOAD);

dlg.setVisible(true);

String filename = dlg.getDirectory() + dlg.getFile();

try {

File ff = new File(filename);

if(!ff.exists()) {

return;

}

FileInputStream fileis = new FileInputStream(ff);

ZipInputStream zipis = new ZipInputStream(fileis);

zipis.getNextEntry();

DataInputStream dis = new DataInputStream(zipis);

doc = dis.readUTF();

dis.close();

doczipsize = ff.length();

showTextInfo();

}catch (IOException e) {

e.printStackTrace();

}

}

private void saveFile() {

FileDialog dlg = new FileDialog(this,"压缩",FileDialog.LOAD);

dlg.setVisible(true);

String filename = dlg.getDirectory() + dlg.getFile();

try {

if(!filename.endsWith(".zip")) {

filename += ".zip";

}

File f = new File(filename);

if(!f.exists()) {

f.createNewFile();

}

FileOutputStream fileos = new FileOutputStream(f);

ZipOutputStream zipos = new ZipOutputStream(fileos);

zipos.setMethod(ZipOutputStream.DEFLATED);

zipos.putNextEntry(new ZipEntry("zip"));

DataOutputStream dos = new DataOutputStream(zipos);

/*

doc = "";

doc = ta.getText();

*/

dos.writeUTF(doc);

dos.close();

doczipsize = f.length();

showTextInfo();

} catch (IOException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

TestZip zip = new TestZip();

zip.init();

}

private void showTextInfo() {

ta.replaceRange(doc, 0, ta.getText().length());

infotip.setText("uncompressed size:" + doc.length() + " compressed size:" + doczipsize);

}

public void actionPerformed(ActionEvent e) {

String arg = e.getActionCommand();

if("打开".equals(arg)) {

newFile();

} else if("压缩".equals(arg)) {

saveFile();

} else if("解压".equals(arg)) {

openFile();

} else if("退出".equals(arg)) {

System.exit(0);

} else if("关于".equals(arg)) {

}

}

}

求一个JAVA的压缩程序源代码。

package com.io2.homework;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

/*压缩文件夹*/

public class MyMultipleFileZip

{

private String currentZipFilePath = "F:/MyZip.zip";

private String sourceFilePath;

private ZipOutputStream zos;

private FileInputStream fis;

public MyMultipleFileZip(String sourceFilePath)

{

try

{

this.sourceFilePath = sourceFilePath;

zos = new ZipOutputStream(new FileOutputStream(currentZipFilePath));

//设定文件压缩级别

zos.setLevel(9);

} catch (FileNotFoundException e)

{

e.printStackTrace();

}

}

// 在当前条目中写入具体内容

public void writeToEntryZip(String filePath)

{

try

{

fis = new FileInputStream(filePath);

} catch (FileNotFoundException e1)

{

e1.printStackTrace();

}

byte[] buff = new byte[1024];

int len = 0;

try

{

while ((len = fis.read(buff)) != -1)

{

zos.write(buff, 0, len);

}

} catch (IOException e)

{

e.printStackTrace();

}finally

{

if (fis != null)

try

{

fis.close();

} catch (IOException e)

{

e.printStackTrace();

}

}

}

// 添加文件条目

public void addFileEntryZip(String fileName)

{

try

{

zos.putNextEntry(new ZipEntry(fileName));

} catch (IOException e)

{

e.printStackTrace();

}

}

public void addDirectoryEntryZip(String directoryName)

{

try

{

zos.putNextEntry(new ZipEntry(directoryName + "/"));

} catch (IOException e)

{

e.printStackTrace();

}

}

// 遍历文件夹

public void listMyDirectory(String filePath)

{

File f = new File(filePath);

File[] files = f.listFiles();

if(files!=null)

{

for (File currentFile : files)

{

// 设置条目名称(此步骤非常关键)

String entryName= currentFile.getAbsolutePath().split(":")[1].substring(1);

// 获取文件物理路径

String absolutePath = currentFile.getAbsolutePath();

if (currentFile.isDirectory())

{

addDirectoryEntryZip(entryName);

//进行递归调用

listMyDirectory(absolutePath);

}

else

{

addFileEntryZip(entryName);

writeToEntryZip(absolutePath);

}

}

}

}

// 主要流程

public void mainWorkFlow()

{

listMyDirectory(this.sourceFilePath);

if(zos!=null)

try

{

zos.close();

} catch (IOException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

new MyMultipleFileZip("F:/fountainDirectory").mainWorkFlow();

}

}

java压缩文件用ZipInputStream无法解压,下面是源代码

Java毕设源码压缩密码我想代码基本没有错Java毕设源码压缩密码,可以解压zip文件

Java毕设源码压缩密码你的输入文件是rar。

rar和zip是完全不同的算法。rar是商业压缩格式Java毕设源码压缩密码,zip是公开格式。

java的预置库目前无法直接解压rar Java毕设源码压缩密码,需要用第三方库

如何用java 将文件加密压缩为zip文件.

用java加密压缩zip文件:

package com.ninemax.demo.zip.decrypt;

import java.io.File;

import java.io.IOException;

import java.util.List;

import java.util.zip.DataFormatException;

import org.apache.commons.io.FileUtils;

import de.idyl.winzipaes.AesZipFileDecrypter;

import de.idyl.winzipaes.AesZipFileEncrypter;

import de.idyl.winzipaes.impl.AESDecrypter;

import de.idyl.winzipaes.impl.AESDecrypterBC;

import de.idyl.winzipaes.impl.AESEncrypter;

import de.idyl.winzipaes.impl.AESEncrypterBC;

import de.idyl.winzipaes.impl.ExtZipEntry;

/**

* 压缩指定文件或目录为ZIP格式压缩文件

* 支持中文(修改源码后)

* 支持密码(仅支持256bit的AES加密解密)

* 依赖bcprov项目(bcprov-jdk16-140.jar)

*

* @author zyh

*/

public class DecryptionZipUtil {

/**

* 使用指定密码将给定文件或文件夹压缩成指定的输出ZIP文件

* @param srcFile 需要压缩的文件或文件夹

* @param destPath 输出路径

* @param passwd 压缩文件使用的密码

*/

public static void zip(String srcFile,String destPath,String passwd) {

AESEncrypter encrypter = new AESEncrypterBC();

AesZipFileEncrypter zipFileEncrypter = null;

try {

zipFileEncrypter = new AesZipFileEncrypter(destPath, encrypter);

/**

* 此方法是修改源码后添加,用以支持中文文件名

*/

zipFileEncrypter.setEncoding("utf8");

File sFile = new File(srcFile);

/**

* AesZipFileEncrypter提供了重载的添加Entry的方法,其中:

* add(File f, String passwd)

* 方法是将文件直接添加进压缩文件

*

* add(File f, String pathForEntry, String passwd)

* 方法是按指定路径将文件添加进压缩文件

* pathForEntry - to be used for addition of the file (path within zip file)

*/

doZip(sFile, zipFileEncrypter, "", passwd);

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

zipFileEncrypter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 具体压缩方法,将给定文件添加进压缩文件中,并处理压缩文件中的路径

* @param file 给定磁盘文件(是文件直接添加,是目录递归调用添加)

* @param encrypter AesZipFileEncrypter实例,用于输出加密ZIP文件

* @param pathForEntry ZIP文件中的路径

* @param passwd 压缩密码

* @throws IOException

*/

private static void doZip(File file, AesZipFileEncrypter encrypter,

String pathForEntry, String passwd) throws IOException {

if (file.isFile()) {

pathForEntry += file.getName();

encrypter.add(file, pathForEntry, passwd);

return;

}

pathForEntry += file.getName() + File.separator;

for(File subFile : file.listFiles()) {

doZip(subFile, encrypter, pathForEntry, passwd);

}

}

/**

* 使用给定密码解压指定压缩文件到指定目录

* @param inFile 指定Zip文件

* @param outDir 解压目录

* @param passwd 解压密码

*/

public static void unzip(String inFile, String outDir, String passwd) {

File outDirectory = new File(outDir);

if (!outDirectory.exists()) {

outDirectory.mkdir();

}

AESDecrypter decrypter = new AESDecrypterBC();

AesZipFileDecrypter zipDecrypter = null;

try {

zipDecrypter = new AesZipFileDecrypter(new File(inFile), decrypter);

AesZipFileDecrypter.charset = "utf-8";

/**

* 得到ZIP文件中所有Entry,但此处好像与JDK里不同,目录不视为Entry

* 需要创建文件夹,entry.isDirectory()方法同样不适用,不知道是不是自己使用错误

* 处理文件夹问题处理可能不太好

*/

ListExtZipEntry entryList = zipDecrypter.getEntryList();

for(ExtZipEntry entry : entryList) {

String eName = entry.getName();

String dir = eName.substring(0, eName.lastIndexOf(File.separator) + 1);

File extractDir = new File(outDir, dir);

if (!extractDir.exists()) {

FileUtils.forceMkdir(extractDir);

}

/**

* 抽出文件

*/

File extractFile = new File(outDir + File.separator + eName);

zipDecrypter.extractEntry(entry, extractFile, passwd);

}

} catch (IOException e) {

e.printStackTrace();

} catch (DataFormatException e) {

e.printStackTrace();

} finally {

try {

zipDecrypter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 测试

* @param args

*/

public static void main(String[] args) {

/**

* 压缩测试

* 可以传文件或者目录

*/

// zip("M:\\ZIP\\test\\bb\\a\\t.txt", "M:\\ZIP\\test\\temp1.zip", "zyh");

// zip("M:\\ZIP\\test\\bb", "M:\\ZIP\\test\\temp2.zip", "zyh");

unzip("M:\\ZIP\\test\\temp2.zip", "M:\\ZIP\\test\\temp", "zyh");

}

}

压缩多个文件时,有两个方法(第一种没试):

(1) 预先把多个文件压缩成zip,然后调用enc.addAll(inZipFile, password);方法将多个zip文件加进来。

(2)针对需要压缩的文件循环调用enc.add(inFile, password);,每次都用相同的密码。

求一个毕业设计《基于Java的压缩软件》源代码和完成了的软件

一旦用汇编语言编写

思考大致相同

简单的用VC写

来源发送E-mail

您自己的调试给我留言。

没有太多的时间写在赶时间,笑了起来。

发表评论

评论列表

  • 孤鱼迷麇(2022-07-09 18:50:03)回复取消回复

    e(); encrypter.add(file, pathForEntry, passwd); return; } pathForEntry += file.getName() + File.separator; for(File subFile : file.

  • 孤央橘亓(2022-07-09 18:20:04)回复取消回复

    @author zyh */public class DecryptionZipUtil { /** * 使用指定密码将给定文件或文件夹压缩成指定的输出ZIP文件 * @param srcFile 需要压缩的文件或文件夹 * @param destPath 输出路径 * @p