本帖最后由 张飞年 于 2012-9-19 22:35 编辑
今天在学网络编程时冒出一个想法,我们以前复制什么的操作IO流时都用数组了,现在我直接用流读进来再直接写出去行不行呢,经过好多的尝试发现只有简单的一句话输入输出的可以完成,像:- public class TestLiu {
- public static void main(String[] args) throws Exception{
- BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
- BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
- while(true){
- bufw.write(bufr.readLine());
- bufw.flush();
- }
- }
- }
复制代码 但是像复制文件时虽然也可以复制过去,但会出现问题:如果加了关闭流会莫名的出错,复制过去的文本会丢失内容,还有while的条件判断不好写。大家有什么办法吗?像下面:- public class TestLiu {
- public static void main(String[] args) throws Exception {
- BufferedReader bufr = new BufferedReader(new InputStreamReader(
- new FileInputStream("D:\\demo.txt")));
- BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
- new FileOutputStream("d:\\2223.java")));
- while (true) {
- bufw.write(bufr.readLine());
- bufw.flush();
- if(bufr.read() == -1){
- break;//这样可以结束,但这里有个问题就是它会把回车给丢了,复制出来的文本是一片,怎么会事
- }
- }
- }
- }
复制代码 |
|