1. 程式人生 > >Java——IO流(二)使用位元組流來實現圖片加密、拷貝檔案的功能

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