Java-文字ストリームバッファ-BufferedReader-BufferedWriter

2001 ワード

public class BuffDemo {
	/*
	 *         。
	 * 
	 ***/
	public static void main(String[] args) throws Exception {
		//     
		FileReader fr = new FileReader("abc.txt");
		//        
		BufferedReader bufr = new BufferedReader(fr);
		//     
		FileWriter fw = new FileWriter("abc6.txt");
		//        
		BufferedWriter bufw = new BufferedWriter(fw);
		
		String line = null;
		while((line = bufr.readLine())!=null){
			bufw.write(line);
			bufw.newLine();
			bufw.flush();//     
		}
/*		
		//                 ,                。            10   。
		char[] ch = new char[10];
		int len = 0;
		while((len=bufr.read(ch))!=-1){
			bufw.write(ch);
			bufw.flush();
		}		
*/
		bufr.close();
		bufw.close();
	}

}
/****
 *           BufferedReader  ,          。 BufferedReader     Reader        
 * 
 *   :                    ,       ,       ,                   。
 * 
 * BufferedReader   :                
 * 
 *
 */
public class MyBufferedReader{
	private Reader r;
	private char[] cbuf = new char[1024];
	//           
	int len = 0;
	int i = 0;

	MyBufferedReader(Reader r) {
		this.r = r;
	}

	/*
	 * myread   BufferedReader   read  。             。
	 *               ,          。           。
	 *         ,   -1.
	 */
	public int myread() throws IOException {
		if (len == 0) {
			len = r.read(cbuf);
			i = 0;
		}
		if (len < 0) {
			return -1;
		}
		char ch = cbuf[i];
		i++;
		len--;
		return ch;
	}
	/*
	 * myreadLine   BufferedReader   readLine   。      BufferedReader   read  
	 * read           ,       。readLine            。          。
	 * 
	 */
	StringBuilder sb = new StringBuilder();
	public String myreadLine() throws IOException {
		sb.delete(0, sb.length());
		int ch = 0;
		while((ch = myread())!=-1){
			if(ch == '\r')
				continue;	//      
			if(ch=='
') // break; // return sb.toString(); sb.append((char)ch); } if(sb.length()!=0){ return sb.toString(); } return null; } }