PrintStream类

<1>  基本概念

      java.io.PrintStream:用于更加方便地打印各种数据内容

<2>  常用的方法

                           

PrintStream (OutputStream out) 根据参数指定的引用来构造对象
void print(String s) 用于将参数指定的字符串内容打印出来
void println(String x) 用于打印字符串后,并终止该行
void flush() 刷新流
void close() 用于关闭输出流,并释放有关的资源

 

 

PrintWriter类

<1>  基本概念

      java.io.PrintWriter类:用于将对象的格式化形式,打印到文本输出流

<2>  常用的方法

                  

PrintWriter(Writer out) 根据参数指定的引用来构造对象
void print(String s) 将参数指定的字符串内容,打印出来
void println(String x) 打印字符串后并终止改行
void flush() 刷新流
void close() 关闭流对象,并释放有关的资源

 

<3>  案例题目

      不断地提示用户,输入要发送的内容,若:发送的内容是“bye”,则聊天结束;否则,将用户输入的内容,写入到文件d:/a.txt 中 

      要求:使用BufferedReader类,读取键盘的键入,System.in代表键盘键入

      要求:使用PrintStream类,负责将数据写入文件

 

3.  代码示例

      

class PrintSreamChatTest{

        main (){

 

          //  由手册可知:构造方法需要的是Reader类型的引用,但Reader是个抽象类,实参只能传递子类的对象 - 字符流  

          //  由手册可知:System.in 代表键盘输入,而且是 InputStream类型的 - 字节流

          BufferedReader br = null;

          PrintStream ps = null;

          try{

            br = new BufferedReader(new InputSreamReader(System.in));

            ps = new PrintStream (new FileOutputStream("d:/a.txt"),true));

 

            //  声明一个 boolean 类型的变量作为发送方的代表

            boolean flag = true;

 

            while(true){

              //  1.  提示用户输入要发送的聊天内容,并使用变量记录

              System.out.println ("请" + (flag ? "张三" :”李四“) + ”输入要发送的聊天内容:“ );

              String str = br.readLine();

              //  2.  判断用户输入的内容是否为”bye“,若是,则聊天结束

              if ("bye".equals(str)) {

                System.out.println("聊天结束!");

                break;

              }

              //  3.  若不是,则将用户输入的内容,写入到文件 d:/a.txt 中

              //  获取当前系统时间,并调整格式

              Date d1 = new Date();

              SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd HH"mm:ss");

              ps.println(sdf.format(d1) + (flag? "张三说:" : ”李四说:" ) + str);

              flag = !flag;

            }          

            ps.println(); // 写入空行 与之前的聊天记录隔开
            ps.println();
            ps.println();

          }catch (IOException e) {

            e.printStackTrace();
          } finally{

            //  4.关闭流对象,并释放有关的资源

            if (null != ps) {
              ps.close();
            }
            if (null != br) {
              try {
                br.close();
              } catch (IOException e) {
                e.printStackTrace();
              }
            }

          }

        }

      }