io流,字符读写,拷贝

字符读取

package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.CharBuffer;

/** 
* @author : htf 
* 字符读取
*/
public class TestReader {
	
	
	//一个字符    一个字符的  读
	public static void test() {
		File file=new File("E:\\temp\\a.txt");
		FileReader fr=null;
		try {
			fr=new FileReader(file);
			int c=fr.read();
			 c=fr.read();
			 c=fr.read();
			 c=fr.read();
			 c=fr.read();
			 c=fr.read();
			 System.out.println();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
	//遍历读取
	public static void test1() {
		File file=new File("E:\\temp\\a.txt");
		FileReader fr=null;
		try {
			fr=new FileReader(file);
			int a=0;
			while((a=fr.read())!=-1) {
				System.out.println((char)a);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	//开启缓存区读取
	public static void test2() {
		File file=new File("E:\\temp\\a.txt");
		FileReader fr=null;
		try {
			fr=new FileReader(file);
			int a=0;
			char[] b=new char[3];//每次读取3个字符
			//使用FileReader中的read方法参数是一个数组,每次读取3个字符,返回值为-1时,读取完成
			while((a=fr.read(b))!=-1) {
				System.out.println(new String(b, 0, a));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			try {
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
	public static void main(String[] args) {
		//test();
		//test1();
		test2();
	}
}

字符写 拷贝

package io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/** 
* @author : htf 
* 字符写入与文件拷贝
* 
*/
public class TestWriter {

	//读一个,写一个 效率低下
	public static void test1() {
		File src =new File("E:\\temp\\a.txt");
		File dest=new File("E:\\temp\\a5.txt");
		
		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr=new FileReader(src);
			fw=new FileWriter(dest);
			
			 int a=fr.read();
			 fw.write(a);
			 a=fr.read();
			 fw.write(a);
			 a=fr.read();
			 fw.write(a);
			 a=fr.read();
			 fw.write(a);
			 a=fr.read();
			 fw.write(a);
			 fw.flush();//刷新
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				fw.close();
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	//读一组,写一组
	public static void test2() {
		File src =new File("E:\\temp\\a.txt");
		File dest=new File("E:\\temp\\a6.txt");
		
		FileReader fr = null;
		FileWriter fw = null;
		try {
			fr=new FileReader(src);
			fw=new FileWriter(dest);
			char b[]=new char[3];//每次读三个字符
			int a=0;
			while(( a=fr.read(b))!=-1) {
				fw.write(b,0,a);//将每次读到的数据写进a6.txt,a,写入的字符数
			}
			 fw.flush();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			try {
				fw.close();
				fr.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args) {
		test2();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值