JavaSE: PrintStream类 和 PrintWriter类
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(); } } } } }