刚刚写了一个好玩的程序 给大家分享
这个是用来 隐藏文件的,把自己收藏的电影编程图片。不过这个图片和电影一样大,相信以前大家可能接触过这个功能 两个方法 一个隐藏 一个分解 隐藏后的大图片也是可以打开的,不过打开不是电影 而是图片
废话不多说 上代码,大家拿过去可能需要修改一下,包名 和操作的文件路径
- package com.ys;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.SequenceInputStream;
- import java.util.ArrayList;
- import java.util.Enumeration;
- import java.util.Iterator;
- public class heldFile {
-
- //隐藏文件到图片
- public static void inputMyFile(File file1,File file2,File file3) throws Exception{
- ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
- al.add(new FileInputStream(file1));
- al.add(new FileInputStream(file2));
- final Iterator<FileInputStream> it = al.iterator();
- Enumeration<FileInputStream> en = new Enumeration<FileInputStream>()
- {
- public boolean hasMoreElements()
- {
- return it.hasNext();
- }
- public FileInputStream nextElement()
- {
- return it.next();
- }
- };
- SequenceInputStream sis = new SequenceInputStream(en);
- //x为输出文件的绝对路径如:d:/haha/a.jpg
- FileOutputStream fos = new FileOutputStream(file3);
- byte[] buf = new byte[1024];
- int len = 0;
- while((len=sis.read(buf))!=-1)
- {
- fos.write(buf,0,len);
- }
- fos.close();
- sis.close();
- }
- public static void splitFile(File file1,File file2) throws Exception{
- FileInputStream fis = new FileInputStream(file1);
- FileOutputStream fos = new FileOutputStream(file2);
- byte[] buf = new byte[290239];
- int len = 0;
- int count = 1;
- while((len=fis.read(buf))!=-1)
- {
- if(count==1){
- count++;
- continue;
- }else{
- fos.write(buf,0,len);
- fos.flush();
- }
- }
-
- fos.close();
- fis.close();
-
- }
-
- public static void main(String[] args) throws Exception {
- File file1 = new File("/users/sakura/desktop/3.jpg");//路径为图片文件绝对路径
- File file2 = new File("/users/sakura/desktop/sys.txt");//要隐藏的文件路径
- File file3 = new File("/users/sakura/desktop/ImNewJpg.jpg");//隐藏时生成的新图片文件绝对路径
- File file4 = new File("/users/sakura/desktop/1.txt");//分解时生成的被隐藏文件的绝对路径
- //下面两个方法按不同需求选择调用。
- inputMyFile(file1,file2,file3);//隐藏文件方法调用,若分解文件则注释掉
- // splitFile(file3,file4);//分解文件方法,若隐藏文件则注释掉
-
- }
- }
复制代码 |