图片加密
下面我们来说一下如何对图片进行加密与解密的,示例代码如下所示:
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.在主方法中接收该文件
* 3.读和写该文件
示例代码如下所示:
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();
}
}