Java——IO流(二)使用字节流来实现图片加密、拷贝文件的功能

38 篇文章 1 订阅

1.实现图片加密功能

2.拷贝文件(在控制台录入文件的路径,将文件拷贝到当前项目下) 

3.实现录入数据拷贝到文件的功能(将键盘录入的数据拷贝到当前项目下的te.txt文件中,录入数据遇到quit时退出)

 

package pra_16;

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;

public class J_33 {
	public static void main(String[] args) throws IOException {
		
		//1.实现图片加密功能
		BufferedInputStream bis=new BufferedInputStream(new FileInputStream("5.jpg"));
		BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("5_09.jpg"));
		int b;
		while((b=bis.read())!=-1){
			bos.write(b^123);	//密钥,需要解密时,仅需要输入输出对象改变一下即可
		}
		System.out.println("收到");
		bis.close();
		bos.close();
		
		//2.拷贝文件(在控制台录入文件的路径,将文件拷贝到当前项目下)
		File file=getF();
		BufferedInputStream bis2=new BufferedInputStream(new FileInputStream(file));
		BufferedOutputStream bos2=new BufferedOutputStream(new FileOutputStream(file.getName()));
		int b2;
		while((b2=bis2.read())!=-1){
			bos2.write(b2);
		}
		bis2.close();
		bos2.close();
		System.out.println("2.拷贝成功~");
		
		//3.实现录入数据拷贝到文件的功能
		Scanner sc=new Scanner(System.in);
		FileOutputStream fos3=new FileOutputStream("te.txt");
		while(true){
			String line2=sc.nextLine();
			if("quit".equals(line2)){
				break;
			}
			fos3.write(line2.getBytes());	//字符串写出必须转换成字节数组
			fos3.write("\r\n".getBytes());
		}
		fos3.close();
	}
	
	public static File getF(){
		Scanner sc=new Scanner(System.in);
		while(true){
			String line=sc.nextLine();
			File file=new File(line);
			if(!file.exists()){
				System.out.println("录入文件路径错误,请重新录入:");
			}else if(file.isDirectory()){
				System.out.println("录入的是个文件夹路径:请重新录入");
			}else{
				return file;
			}
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值