Java——IO流(二)使用字節流來實現圖片加密、拷貝文件的功能

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;
			}
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章