Java打印流练习

两个用户正在交流,使用打印流把聊天记录输出文档中【格式:时间-用户名-聊天语句】。

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @ClassName Work_1
 * @Description 场景:两个用户正在交流,使用打印流把聊天记录输出文档中【格式:时间-用户名-聊天语句】。
 * @Author chenxys
 * @Date 2022/2/18 17:47
 * @Version
 */
public class Work_1 {
    public static long time;
    public static Date date;
    public static String play1 = "Tom";
    public static String play2 = "Judy";
    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
        chat();
    }
    //
    public static void chat() throws FileNotFoundException, UnsupportedEncodingException {
        PrintWriter printWriter = new PrintWriter("/Users/chenys/Desktop/20220218陈仁富/work_1/record.txt","UTF-8");
        Scanner in = new Scanner(System.in);
        System.out.println("聊天系统正式启动(按q退出):");
        while (true){
            System.out.printf("请%s输入你要聊天的内容(q退出):",play1);
            String p1 = in.next();
            time = System.currentTimeMillis();
            date = new Date(time);
            if (p1.equals("q")) {
                printWriter.println(date.toString()+"\t"+play1+"\t"+"退出聊天");
                printWriter.flush();
                printWriter.close();
                break;
            }
            printWriter.println(date.toString()+"\t"+play1+"\t"+p1);
            System.out.printf("请%s输入你要聊天的内容(q退出):",play2);
            String p2 = in.next();
            time = System.currentTimeMillis();
            date = new Date(time);
            if (p2.equals("q")) {
                printWriter.println(date.toString()+"\t"+play2+"\t"+"退出聊天");
                printWriter.flush();
                printWriter.close();
                break;
            }
            printWriter.println(date.toString()+"\t"+play2+"\t"+p2);
        }
    }
}

老师讲解版 :

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.*;

public class Work_1 {
    //使用自定义时间格式
    public static SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static String play1 = "Tom";//用户1
    public static String play2 = "Judy";//用户2
    public static Scanner in = new Scanner(System.in);//用户输入流
    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
        chat();
    }
    //
    public static void chat() throws FileNotFoundException, UnsupportedEncodingException {
        PrintWriter printWriter = new PrintWriter("/Users/chenys/Desktop/test1/record.txt","UTF-8");//文件存储位置,编码
        System.out.println("聊天系统正式启动(按q退出):");
        while (true){
            System.out.printf("请%s输入你要聊天的内容(q退出):",play1);
            String p1 = in.next();//获取p1的输入
            //获取当前时间
            String date = sm.format(new Date());//获取当前时间,并使用自定义时间格式
            if (p1.equals("q")) {//如果用户输入了q,则退出循环
                printWriter.println(date+"\t"+play1+"\t"+"退出聊天");
                printWriter.flush();//将聊天记录刷新写入到持久层
                in.close();//关闭用户输入流
                printWriter.close();//关闭打印流
                break;//退出循环
            }
            printWriter.println(date+"\t"+play1+"\t"+p1);
            System.out.printf("请%s输入你要聊天的内容(q退出):",play2);
            String p2 = in.next();//获取p2的输入
            date = sm.format(new Date());//获取当前时间,并使用自定义时间格式
            if (p2.equals("q")) {//如果用户输入了q,则退出循环
                printWriter.println(date+"\t"+play2+"\t"+"退出聊天");
                printWriter.flush();//将聊天记录刷新写入到持久层
                in.close();//关闭用户输入流
                printWriter.close();//关闭打印流
                break;//退出循环
            }
            printWriter.println(date+"\t"+play2+"\t"+p2);
        }
    }
}

结果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值