打印流
17.4.9 PrintStream类
(1)基本概念
java.io.PrintStream类主要用于更加方便地打印各种数据内容。
(2)常用的方法
方法声明 功能介绍PrintStream(OutputStream out)根据参数指定的引用来构造对象void print(String s)用于将参数指定的字符串内容打印出来void println(String x)用于打印字符串后并终止该行void flflush()刷新流void close()用于关闭输出流并释放有关的资源
17.4.10 PrintWriter类
(1)基本概念
java.io.PrintWriter类主要用于将对象的格式化形式打印到文本输出流。
(2)常用的方法
**方法声明 功能介绍**PrintWriter(Writer out)根据参数指定的引用来构造对象void print(String s)将参数指定的字符串内容打印出来void println(String x)打印字符串后并终止该行void flflush()刷新流void close()关闭流对象并释放有关的资源
转换流
17.4.11 OutputStreamWriter类
(1)基本概念
java.io.OutputStreamWriter类主要用于实现从字符流到字节流的转换。
(2)常用的方法
方法声明 功能介绍OutputStreamWriter(OutputStream out)根据参数指定的引用来构造对象OutputStreamWriter(OutputStream out, StringcharsetName)根据参数指定的引用和编码构造对象void write(String str)将参数指定的字符串写入void flflush()刷新流void close()用于关闭输出流并释放有关的资源
17.4.12 InputStreamReader类
(1)基本概念
java.io.InputStreamReader类主要用于实现从字节流到字符流的转换。
(2)常用的方法
方法声明 功能介绍InputStreamReader(InputStream in)根据参数指定的引用来构造对象InputStreamReader(InputStream in, StringcharsetName)根据参数指定的引用和编码来构造对象int read(char[] cbuf)读取字符数据到参数指定的数组void close()用于关闭输出流并释放有关的资源
案例题目
不断地提示用户输入要发送的内容,若发送的内容是”bye”则聊天结束,否则将用户输入的内容写
入到文件d:/a.txt中。
要求使用BufffferedReader类来读取键盘的输入 System.in代表键盘输入
要求使用PrintStream类负责将数据写入文件
执行代码:
package com.lagou.task17;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;public class PrintStreamChatTest {public static void main(String[] args) {// 由手册可知:构造方法需要的是Reader类型的引用,但Reader类是个抽象类,实参只能传递子类的对象 字符流// 由手册可知: System.in代表键盘输入, 而且是InputStream类型的 字节流BufferedReader br = null;PrintStream ps = null;try {br = new BufferedReader(new InputStreamReader(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中//else {// 获取当前系统时间并调整格式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();}}}}}
