PrintStream 类

5.PrintStream类(重点)
(1)基本概念
java.io.PrintStream类用于打印各种数据内容。
 
(2)常用的方法
PrintStream(OutputStream out) - 根据参数指定的引用构造对象。
- OutputStream类是个抽象类,实参需要传递子类的对象。
void print(String s) - 打印参数指定的字符串。
void println(String x) - 打印字符串并换行。
void close( ) - 关闭流。
void flush( ) - 刷新流对象。
 
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestBufferedReaderPrintStream {

    public static void main(String[] args) {
        
        try{
            //1.创建BufferedReader类型的对象与键盘输入(System.in)进行关联
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(System.in));
            //2.创建PrintStream类型的对象与c:/a.txt文件进行关联 听不到我说话?
            PrintStream ps = new PrintStream(new FileOutputStream("c:/a.txt"));
            //3.不断地提示用户输入并读取一行本文,并且写入到c:/a.txt中
            int flag = 1;
            while(true){
                System.out.println("请输入要发送的内容:");
                //读取用户输入的一行文本
                String str = br.readLine();
                //4.当用户输入的是"bye"时,则结束循环
                if("bye".equalsIgnoreCase(str)) break;
                //将发送消息的时间写入到文件中
                Date d1 = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                //将str写入到文件中
                ps.println(sdf.format(d1) + (flag%2 == 0?" 张三说:":" 李四说:") + str);
                flag++;
            }    
            //5.关闭相关流对象
            ps.flush();
            ps.close();
            br.close();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

}
 
 
 
 
经验:
当需要向文件中写入多个对象时,通常的做法是先将所有被写入的对象放入一个集合中。
然后将该集合整体看做一个对象写入文件中,此时读取文件中的内容时,只需要调用一次readObject()方法就可以全部读出。
原文地址:https://www.cnblogs.com/penguin1024/p/11760191.html