Java——IO流(二)使用位元組流來實現圖片加密、拷貝檔案的功能
阿新 • • 發佈:2018-12-31
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; } } } }