⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io.java

📁 非常完整的rsa加密解密软件 有多完整?自己看吧
💻 JAVA
字号:
/******************************************************
 *COPYRIGHT@author YIMINGHE , 创建日期 : 2005-12-11
 *
 *         @FUDAN UNIVERSITY
 *
 *Email : yiming_water@hotmail.com,0234075@fudan.edu.cn
 *
 *MSN   : yiming_water@hotmail.com 
 *
 *TODO
 ******************************************************/

package tool;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class IO {

	/**
	 * 加密前读入文件字节数组,每个字节数组最长 block
	 * 
	 * @param file,要读入的文件名字
	 * @param block,字节数组的长度
	 * @return 包含字节数组的 数组 ,每个字节数组最大block
	 */
	public static ArrayList ReadFileForEncrypt(String file, int block) {
		ArrayList store = new ArrayList();

		int available = 0;
		int size = 0;

		try {

			FileInputStream fin = new FileInputStream(file);
			BufferedInputStream fbin = new BufferedInputStream(fin);

			while ((available = fbin.available()) > 0) {
				if (available > block) {
					available = block;
				}

				byte[] data = new byte[available];

				fbin.read(data, 0, available);

				store.add(data);
			}

			fin.close();
			fbin.close();
			if (store.isEmpty())
				throw new Exception("文件为空!");
			return store;
		} catch (Exception e) {

			e.printStackTrace();
			return new ArrayList(0);
		}

	}

	/**
	 * 解密后将包含字节数组的 数组 写入文件
	 * 
	 * @param file,要写入的文件名字
	 * @param store,要写入的字节数组的数组
	 */
	public static void WriteFileAfterDecrypt(String file, ArrayList store) {
		try {
			FileOutputStream fout = new FileOutputStream(file);
			BufferedOutputStream fbout = new BufferedOutputStream(fout);
			for (int i = 0; i < store.size(); i++) {
				fbout.write((byte[]) store.get(i));

			}
			fbout.flush();// 应用了缓存,要刷新!
			fout.close();
			fbout.close();

		}

		catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 加密后,保存密文
	 * 
	 * @param file,文件名
	 * @param store,保存的字节数组
	 */
	public static void WriteFileAfterEncrypt(String file, ArrayList store) {
		try {
			FileOutputStream fout = new FileOutputStream(file);
			ObjectOutputStream fbout = new ObjectOutputStream(fout);

			fbout.writeObject(store);

			fbout.flush();// 应用了缓存,要刷新!
			fout.close();
			fbout.close();

		}

		catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 解密前从密文中读入字节组
	 * 
	 * @param file
	 * @return 字节数组的数组
	 */
	public static ArrayList ReadFileBeforeDecrypt(String file) {
		ArrayList store = new ArrayList();
		try {
			FileInputStream fin = new FileInputStream(file);
			ObjectInputStream fbin = new ObjectInputStream(fin);

			store = (ArrayList) fbin.readObject();

			if (store.isEmpty())
				throw new Exception("文件为空");

			fin.close();
			fbin.close();
			return store;
		}

		catch (Exception e) {
			e.printStackTrace();
			return store;
		}
	}

	public static void save(String s2, String savename) {
		try {
			BufferedReader in2 = new BufferedReader(new StringReader(s2));
			PrintWriter out1 = new PrintWriter(new BufferedWriter(
					new FileWriter(savename)));
			String s = new String();
			while ((s = in2.readLine()) != null)
				out1.println(s);
			in2.close();
			out1.flush();
			out1.close();
		} catch (Exception e) {
			System.out.println("write wrong!!!");
		}
	}

	public static String openForDecrypt(String readname, ArrayList store) {
		String s2 = "open wrong!!!";
		store.clear();
		try {

			BufferedReader in = new BufferedReader(new FileReader(readname));
			String s = new String();
			s2 = new String();
			while ((s = in.readLine()) != null)
				s2 += s + "\n";
			StringTokenizer token = new StringTokenizer(s2);
			while (token.hasMoreTokens()) {
				store.add(token.nextToken());
			}

			in.close();
		} catch (Exception e) {
			System.out.println("open wrong!!!");
		}
		return s2;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -