图片加密

下面我们来说一下如何对图片进行加密与解密的,示例代码如下所示:

package stream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class test {
/**
 * @param args
 * @throws IOException 
 * 图片加密
 * 将写出的字节异或上一个数,这个数就是密钥,解密的时候在此异或就可以了,因为一个数同时被异或两次就是它本身。
 * **/
 public static void main(String[] args) throws IOException {
 BufferedInputStream bis=new BufferedInputStream(new FileInputStream("copy.png"));
 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("copy2.png"));
 int b;
 while((b=bis.read())!=-1){
 bos.write(b^123);;
 }
 bis.close();
 bos.close();
 }
}


拷贝文件

下面来讲解如何在控制台录入文件的路径,将文件拷贝到当前项目下。

* 分析:
* 1.定义方法对键盘录入的路径进行判断,如果是文件就返回
* 2.在主方法中接收该文件

示例代码如下所示:

package stream;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
import javax.imageio.stream.FileImageInputStream;
public class test2 {
 /**
  * 在控制台录入文件的路径,将文件拷贝到当前项目下
  * 分析:
  * 1.定义方法对键盘录入的路径进行判断,如果是文件就返回
  * 2.在主方法中接收该文件
  * 3.读和写该文件
  * @throws IOException 
  * **/
 public static void main(String[] args) throws IOException {
 File file=getFile();//获取文件
 BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));
 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file.getName()));
 int b;
 while((b=bis.read())!=-1){
 bos.write(b);
 }
 bis.close();
 bos.close();
 }
 /**
  * 定义一个方法获取键盘录入的文件路径,并封装成File对象返回
  * 1.返回值类型File
  * 2.参数列表无
  * 
  * **/
 public static File getFile(){
 Scanner sc=new Scanner(System.in); //创建键盘录入对象
 System.out.println("请输入一个文件的路径:");
 while(true){
 String line=sc.nextLine();   //接收键盘录入路径
 File file=new File(line);    //封装成File
 if(!file.exists()){
 System.out.println("你录入的文件路径不存在,请重新输入:");
 }else if(file.isDirectory()){
 System.out.println("你录入的是文件夹路径,请重新录入:");
 }else{
 return file;
 }
 
 }
 }}

 * 将键盘录入的数据拷贝到当前项目下的test.txt文件中,键盘录入数据当遇到quit时 就对出
 * 分析:
 * 1.创建键盘录入对象
 * 2.创建输入流对象,关联text.txt文件
 * 3.定义无限循环
 * 4.遇到quit退出循环
 * 5.如果不quit九江内容写出

 * 6.关闭流

示例代码如下:

package stream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class test3 {
/**
 * 将键盘录入的数据拷贝到当前项目下的test.txt文件中,键盘录入数据当遇到quit时 就对出
 * 分析:
 * 1.创建键盘录入对象
 * 2.创建输入流对象,关联text.txt文件
 * 3.定义无限循环
 * 4.遇到quit退出循环
 * 5.如果不quit九江内容写出
 * 6.关闭流
 * @throws IOException 
 * 
 * **/
 public static void main(String[] args) throws IOException {
 //创建键盘录入对象
 Scanner sc=new Scanner(System.in);
 //创建输出流对象,关联text.txt文件
 FileOutputStream fos=new FileOutputStream("text.txt");
 //定义无限循环
 System.out.println("请输入数据:");
 while(true){
 String line=sc.nextLine();//将键盘录入的数据存储到line中
 if("quit".equals(line)){
 break;
 }
 fos.write(line.getBytes());//字符串写出必须转换成字节数据
 fos.write("\r\n".getBytes());
 }
 //关流
 fos.close();
 }
}