java对文件进行加密解密操作
接口类:
package JFFileEncrypt;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
/**
* 功能:对文件加密解密操作
* @author jiangfeng
*
*/
public interface FileEncryptInterface
{
/**
* 加密算法
* @param key
* @param FileName
* @return
*/
public boolean DESEncrypt(Key key, String FileName);
/**
* 解密算法
* @param FileName
* @param key
* @return
*/
public boolean DESDecrypt(String FileName, Key key);
/**
* 自定义一个key
*/
public Key getKey(String keyRule);
/**
* 第二种产生key的方法
* @return
*/
public Key getKey2();
}
接口实现类:
package JFFileEncrypt;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;
/**
* 功能:对文件加密解密操作
* @author jiangfeng
*
*/
public class FileEncryptImpal implements FileEncryptInterface
{
/**
* 功能:加密文件
*/
public boolean DESEncrypt(Key key, String FileName)
{
boolean result = false;
StringBuffer sb = null;
try
{
/*
* Cipher类无构造方法,调用getInstance()方法将所请求转换的名称传递给它 参数为 转换的名称,例如
* DES/C
相关文档:
Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。下面逐个分析。
JAVA_HOME指向的是JDK的安装路径,如x:\JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如x:\XXXXXX\xxxxx\XXXX\xxxx ......
/**
* 创建一个新的文件
* @param relativePath 相对路径
* @param fileName 文件名
* @return
* @throws IOException
*/
public File cre ......
Java中的事务处理
一般情况下,J2EE应用服务器支持JDBC事务、JTA(Java Transaction API)事务、容器管理事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在JTA事务中嵌套JDBC事务。第二方面,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用。下面我们列举两种事务处理方式。
......
1.引言
Java I/O系统是建立在数据流概念之上的,而在UNIX/Linux中有一个类似的概念,就是管道,它具有将一个程序的输出当作另一个程序的输入的能力。在Java中,可以使用管道流进行线程之间的通信,输入流和输出流必须相连接,这样的通信有别于一般的Shared Data通信,其不需要一个共享的数据空间。
2.相关类及其关系
1) ......
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class ShuffleTest {
public static void main(String args[]) {
String simpsons[ ......