Java字符缓冲流BufferedWriter(输出).BufferedReader(输入)基本操作以及文本文件复制


	public static void main(String[] args) throws IOException {
		//demoOne();//写
		//demoTwo();//读
		//demoTest();//文本文件的复制操作
	}
	/**
	 * 文本文件复制操作,注意:只能操作文本文件,其他文件复制后也不能使用(编码表原因)
	 */
	private static void demoTest() throws IOException {
		BufferedReader br = new BufferedReader(new FileReader("D:\\a.txt"));
		BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\a.txt"));
		char[] c = new char[1024];
		int len = 0;
		while((len =br.read(c)) != -1){
			bw.write(c, 0, len);
			bw.flush();
		}
		bw.close();
		br.close();
		System.out.println("复制完成");
	}
	/**
	 * BufferedReader();字符输入缓冲流
	 * 	构造参数:
	 * 		FileReader,默认读取编码格式GBK
	 * 		InputStreamReader,转换流,可以根据需要改变编码
	 */
	private static void demoTwo() throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\a.txt"),"UTF-8"));
		char[] c = new char[1024];
		int len = 0;
		//普通读取方法
		//while((len = br.read(c)) != -1){
		//	System.out.println(new String(c, 0, len));
		//	}
		
		//读取一行
		//String readLine = br.readLine();//独有方法,读取一行文本信息,可以使用此方法每次读取一行进行读取文本,如果到达文件末尾则返回null
		//System.out.println(readLine);
		
		String data = "";
		while((data = br.readLine()) != null){
			System.out.println(data);//如果输出也是br.readLine()那么循环读取到的是第一行,输出读取到的是第二行
		}
		
		br.close();
	}

	/**
	 * BufferedWriter();字符输出缓冲流
	 *   构造参数:
	 * 		FileWriter,如果不需要转换编码,直接使用默认编码GBK即可
	 * 		OutputStreamWriter
	 */
	private static void demoOne() throws IOException{
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\a.txt"), "UTF-8"));
		bw.write("你好!");
		bw.flush();
		
		bw.newLine();//换行写入,省去\r\n,BufferWriter独有方法,平台无关性,windows:\r\n,Linux:\n
		
		bw.write("我好大家好");
		bw.flush();//记得刷新
		
		bw.close();
		System.out.println("写入完成");
	}

你可能感兴趣的:(JavaSE)