PrintStream和PrintWriter 2020-8-23

一、PrintStream

构造方法:

① PrintStream(String fileName)

② PrintStream(OutputStream out)

③ PrintStream(OutputStream out, boolean autoFlush)

public class PrintStreamTest02 {
    public static void main(String[] args) {
        PrintStream ps = null;
        try {
            //写到控制台
            ps = System.out;
            ps.println("打印到控制台");
            System.out.println("标准输出流");

            //写到指定文件,手动刷新
            ps = new PrintStream("..\\..\\java\\PrintStream01.txt");
            /*
            ps = new PrintStream(new FileOutputStream("..\\..\\java\\PrintStream01.txt"));
            //自动刷新
            ps = new PrintStream(new FileOutputStream("..\\..\\java\\PrintStream01.txt"),true);
 
            
*/
            //println方法是将指定类型的数据写到文件中
            ps.println(1);
            ps.println("哈哈哈");
            //write()是以字节的形式写到文件中
            ps.write(97);//a
            byte[] bytes = {10,98};//换行 b
            ps.write(bytes);
            ps.write(bytes,0,1);//换行
            ps.write(99);//c
            //刷新
            ps.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (ps != null){
                ps.close();
            }
        }
    }
}

System.setOut(PrintStream out):

public class PrintStreamTest01 {
    public static void main(String[] args) {
        System.out.println("Hello World");

        PrintStream ps = System.out;

        ps.println("hello zhangsan");
        ps.println("hello lisi");
        ps.println("hello wangwu");

        //可以改变标准输出流的输出方向
        /*旧知识回顾
        System.gc();                    运行垃圾回收器
        System.currentTimeMillis();     返回当前时间(以毫秒为单位)。
        PrintStream ps = System.out;    返回标准输出流对象
        System.exit(0);                 终止当前运行的Java虚拟机。
        System.arraycopy(Object src,
                        int srcPos,
                        Object dest,
                        int destPos,
                        int length);    数组扩容
        System.setOut(PrintStream out)  重新分配“标准”输出流。
        System.setIn(InputStream in)    重新分配“标准”输入流。

        */

        try {
            //标准输出流不再指向控制台,指向 "log" 文件
            PrintStream printStream = new PrintStream(new FileOutputStream("..\\..\\java\\log.txt"));
            //修改输出方向到 "log" 文件
            System.setOut(printStream);
            System.out.println("hello zhangsan");
            System.out.println("hello lisi");
            System.out.println("hello wangwu");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (ps != null){
                ps.close();
            }
        }
    }
}

二、PrintWriter

构造方法:

① PrintWriter(OutputStream out)

② PrintWriter(OutputStream out, boolean autoFlush)

③ PrintWriter(String fileName) throws FileNotFoundException

④ PrintWriter(Writer out)

⑤ public PrintWriter(Writer out, boolean autoFlush)

public class PrintWriterTest01 {
    public static void main(String[] args) throws IOException {
        PrintWriter pw  = new PrintWriter("../../java/PrintWriter01.txt");
        pw.println(1);
        pw.write(10);
        pw.write("一");//写字符
        pw.append('1');//追加
        pw.flush();

        pw = new PrintWriter(new FileOutputStream("../../java/PrintWriter02.txt"));
        pw.println(2);
        pw.flush();

        pw = new PrintWriter(new FileOutputStream("../../java/PrintWriter03.txt"),true);
        pw.println(3);

        pw = new PrintWriter(new FileWriter("../../java/PrintWriter04.txt"),true);
        pw.println(4);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值