黑马程序员技术交流社区
标题:
字符输入输出流
[打印本页]
作者:
哈皮哈皮doge
时间:
2015-8-26 19:28
标题:
字符输入输出流
本帖最后由 哈皮哈皮doge 于 2015-8-26 20:12 编辑
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class TestReader {
public static void main(String[] args){
File src = new File("1.txt");
File des = new File("2.txt");
FileReader reader = null;
FileWriter writer = null;
try{
int ch =0;
char[] chars = new char[10];//表示10个字符的数组
reader = new FileReader(src);
writer = new FileWriter(des);
//ch的值表示输入流每次读到的字符的个数,不是字节数,也不是总个数,这个值可能不是每次都相等
//例如:文本文件里头有11个字符(aaaaaaaaaab)因为这里chars的大小是10,所以要读2次,第一次读10个字符,第二次读1个字符,
//因此,第一次读时ch=10第2次读时ch=1;
//此外,第一次读时chars为aaaaaaaaaa,第二次读时chars为baaaaaaaaa,第二次因为只读了一个所以只是覆盖了chars的第一个字符,后面的不变
while((ch=reader.read(chars))!=-1){
writer.write(chars,0,ch);//将每次读到的字符输出到目标文件,如果用write(chars)方法则会将chars中所有的字符都输出,这里用0,ch表示只需输出每次读到的字符
System.out.println(ch);//查看每次读了多少字符
System.out.print(new String(chars));//将chars输出到控制台
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(reader!=null){
reader.close();
}
if(writer!=null){
writer.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2