黑马程序员技术交流社区

标题: PrintWrite an PrintStream [打印本页]

作者: HeiMa-黄倲江    时间: 2012-11-5 01:39
标题: PrintWrite an PrintStream
package cn.max;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class PrintDome {

        /**
         * 字节打印流 构造函数可以接受的对象
         * PrintSteam
         * 1.File对象  file
         * 2.字符串路径 String
         * 3.字节输出流OutputStream
         *
         *PrintWriter
         *1.File对象 file
         *2.字符串路径 String
         *3.字节输出流OutputStream
         *4.字符输出流Writer
         *
         * @param args
         */
        public static void main(String[] args)throws IOException {
                WriterDemo();
        }
       
        public static void WriterDemo() throws IOException{
                //键盘录入
                BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                //注意: 这里要是多加了个参数true的话 就不用 out.flush()这个方法  但是前提必须得是println 换行才可以刷新
                //需求1.我要把键盘信息录入到文件里边呢
               
                //PrintWriter out = new PrintWriter(System.out,true);
                //PrintWriter out = new PrintWriter("a.txt"); //刷新只对流而言的  是不能操作文件的.
                //需求2: 那我向刷新呢怎么办啊!  简单阿!用FileWriter封装下不就完了吗
                PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("a.txt")),true);                //需求3:想提高效率怎么办啊. 直接new 一个BufferedWrite就得了呗
                String line = null;
                while((line=bufr.readLine()) != null){
                        if("over".equals(line)){
                                break;
                        }
                        out.println(line.toUpperCase());
                        //刷新
                        //不刷新时因为调用的函数 多加了个参数 true已经自动去执行刷新了
//                        out.flush();
                }
                bufr.close();
                out.close();
        }

}


这两个刷新,  在效率上有什么不一样吗?





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2