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;
}
}