IO流的应用

IO流的应用

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

/*
 * 	1.图片加密
 *	将写出的字节异或上一个数,这个数就是密钥,解密的时候在次异或就可以了
 *
 *	2.在控制台录入文件的路径,将文件拷贝到当前目录下
 *			1.创建键盘录入对象
 *			2.定义方法对录入键盘路径进行判断,如果是文件就返回
 *			3.在主方法中接收改文件
 *			4.读和写文件
 *
 *	3.将键盘录入的数据拷贝到当前项目下的text.txt文件中,键盘录入数据当遇到quit时就退出
 *			1.创建键盘录入对象
 *			2.创建输出流对象,关联text.txt文件
 *			3.定义无限循环
 *			4.遇到quit退出循环
 *			5.如果不quit,就将内容写出
 *			6.关闭流
 *	4. 将文本反转并且写到另外一个文件上 (按行反转) 至少两行数据才能看出效果
 *			1.创建好输入输出流
 *			2.创建好对象
 *			3.读
 *			4.遍历集合并且写
 */
public class Test {
	public static void main(String[] args) throws IOException {
//		demo1();		//图片加密
//		demo2();		//图片解密
//		demo3();
//		demo4();
//		demo5();
	}

	private static void demo5() throws FileNotFoundException, IOException {
		/*
		 * abcd
		 * garga
		 * 
		 * garga
		 * abcd
		 */
		BufferedReader br = new BufferedReader(new FileReader("aaa.txt"));
		BufferedWriter bw = new BufferedWriter(new FileWriter("bbb.txt"));
		ArrayList<String> list = new ArrayList<>();
		String line = "";
		while((line = br.readLine()) != null){
			list.add(line);
		}
		for(int i = list.size() - 1; i >= 0; i--){
			bw.write(list.get(i));
			bw.newLine();
		}
		br.close();
		bw.close();
	}

	private static void demo4() throws FileNotFoundException, IOException {
		/*
		 * today the weather is very good !
		 * quit
		 */
		//1.创建键盘录入
		Scanner sc = new Scanner(System.in);
	
		//2.关联输出流对象,关联text.txt文件
		FileOutputStream fos = new FileOutputStream("ccc.txt");
		System.out.println("请输入数据:");
		//3.定义无限循环
		while(true){
			//4.遇到quit退出循环
			String line = sc.nextLine();
			if("quit".equals(line)){
				break;
			}
			//5.如果不quit,就将内容写出
			fos.write(line.getBytes());
			fos.write("\r\n".getBytes());
			//6.关闭流
			fos.close();
		}
	}

	private static void demo3() throws FileNotFoundException, IOException {
		File file = getFile();
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bbb.txt"));
		int len;
		while((len = bis.read()) != -1) {
			bos.write(len);
		}
		bis.close();
		bos.close();
	}

	public static File getFile() {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个文件的路径:");
		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;
			}
		}
	}

	private static void demo2() throws FileNotFoundException, IOException {
		/*
		 * 图片的解密
		 */
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("copy4.jpg"));
		BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream("copy5.jpg"));
		int b;
		while((b = bis.read()) != -1){
			bos.write(b ^ 20);
		}
		bis.close();
		bos.close();
	}

	private static void demo1() throws FileNotFoundException, IOException {
		/*
		 * 图片的加密
		 */
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream("img.jpg"));
		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("img2.jpg"));
		int b;
		while((b = bis.read()) != -1) {
			bos.write(b ^ 20);
		}
		bis.close();
		bos.close();
	}
}
发布了54 篇原创文章 · 获赞 0 · 访问量 346

猜你喜欢

转载自blog.csdn.net/qq_42977003/article/details/102959863
今日推荐