Java 字符流拷贝文件的5种方式

复制文本文件的5中方式
        1、利用基本流一次读写一个字符
        2、利用基本流一次读写一个字符数组
        3、利用缓冲流一次读写一个字符
        4、利用缓冲流一次读写一个字符数组

        5、利用缓冲流的特有方法一次读写一个字符串

代码如下:

public class IODemo {

	public static void main(String[] args) {
		// 第一种方法原文件名称
		String fileName1 = "file1.txt";
		// 第一种方法拷贝后文件名称
		String copyfileName1 = "copyfile1.txt";

		// 第2种方法原文件名称
		String fileName2 = "file2.txt";
		// 第2种方法拷贝后文件名称
		String copyfileName2 = "copyfile2.txt";

		// 第3种方法原文件名称
		String fileName3 = "file3.txt";
		// 第3种方法拷贝后文件名称
		String copyfileName3 = "copyfile3.txt";

		// 第4种方法原文件名称
		String fileName4 = "file4.txt";
		// 第4种方法拷贝后文件名称
		String copyfileName4 = "copyfile4.txt";

		// 第5种方法原文件名称
		String fileName5 = "file5.txt";
		// 第5种方法拷贝后文件名称
		String copyfileName5 = "copyfile5.txt";

		try {
			// methon1(fileName1, copyfileName1);
			// methon2(fileName2, copyfileName2);
			// methon3(fileName3, copyfileName3);
			// methon4(fileName4, copyfileName4);
			methon5(fileName5, copyfileName5);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	// 第一种方式:基本流一次读写一个字符
	public static void methon1(String fileName, String copyFileName)
			throws IOException {
		// 创建输入流
		FileReader reader = new FileReader(fileName);
		// 创建输出流
		FileWriter writer = new FileWriter(copyFileName);
		// 一次写一个字符
		int ch;
		while ((ch = reader.read()) != -1) {
			writer.write(ch);
		}
		// 释放资源
		reader.close();
		writer.close();
		System.out.println("第一种方式:基本流一次读写一个字符拷贝文件完成!");
	}

	// 第二种方式:利用基本流一次读写一个字符数组
	public static void methon2(String fileName, String copyFileName)
			throws IOException {
		// 创建输入流
		FileReader reader = new FileReader(fileName);
		// 创建输出流
		FileWriter writer = new FileWriter(copyFileName);
		// 一次写一个字符数组
		char[] chs = new char[1024];
		int len;
		while ((len = reader.read(chs)) != -1) {
			writer.write(chs, 0, len);
		}
		// 释放资源
		reader.close();
		writer.close();
		System.out.println("第二种方式:利用基本流一次读写一个字符数组拷贝文件完成!");
	}

	// 第3种方式:利用缓冲流一次读写一个字符
	public static void methon3(String fileName, String copyFileName)
			throws IOException {
		// 创建输入缓冲流对象
		BufferedReader reader = new BufferedReader(new FileReader(fileName));
		// 创建输出缓冲流对象
		BufferedWriter writer = new BufferedWriter(new FileWriter(copyFileName));
		// 一次写一个字符

		int ch;
		while ((ch = reader.read()) != -1) {
			writer.write(ch);
		}
		// 释放资源
		reader.close();
		writer.close();
		System.out.println("第3种方式:利用缓冲流一次读写一个字符拷贝文件完成!");
	}

	// 第4种方式:利用缓冲流一次读写一个字符
	public static void methon4(String fileName, String copyFileName)
			throws IOException {
		// 创建输入缓冲流对象
		BufferedReader reader = new BufferedReader(new FileReader(fileName));
		// 创建输出缓冲流对象
		BufferedWriter writer = new BufferedWriter(new FileWriter(copyFileName));
		// 一次写一个字符
		char[] chs = new char[1024];
		int len;
		while ((len = reader.read(chs)) != -1) {
			writer.write(chs, 0, len);
		}
		// 释放资源
		reader.close();
		writer.close();
		System.out.println("第4种方式:利用缓冲流一次读写一个字符数组拷贝文件完成!");
	}

	// 第5种方式:利用缓冲流的特有方法一次读写一个字符串
	public static void methon5(String fileName, String copyFileName)
			throws IOException {
		// 创建输入缓冲流对象
		BufferedReader reader = new BufferedReader(new FileReader(fileName));
		// 创建输出缓冲流对象
		BufferedWriter writer = new BufferedWriter(new FileWriter(copyFileName));
		// 一次写一个字符
		// char[] chs=new char[1024];
		String line;
		while ((line = reader.readLine()) != null) {
			writer.write(line);
			writer.newLine();// 换行
			writer.flush();// 清理缓冲区域
		}
		// 释放资源
		reader.close();
		writer.close();
		System.out.println("第5种方式:利用缓冲流的特有方法一次读写一个字符串贝文件完成!");
	}
}

猜你喜欢

转载自blog.csdn.net/ithongchou/article/details/79413573
今日推荐