JavaSE之打印流

自己设计一个简单打印流

import java.io.*;
import java.io.File;
import java.util.Date;
class PrintUtil{
private OutputStream out;
public PrintUtil(OutputStream out){
    this.out=out;
}
//打印字符串
public void print(String str){
    try {
        out.write(str.getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

//打印换行
public void println(String str){
    this.print(str+"\n");
}

    //打印整型
public void print(int num){
    this.print(String.valueOf(num));
}

public void println(int num){
    this.print(num+"\n");
}

public void print(double d){
    this.print(String.valueOf(d));
}

public void println(double d){
    this.print(d+"\n");
}
public void close(){
    try {
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}
public class Test {
    public static void main(String[] args)throws IOException {
        File file = new File("C:Users" + File.separator + "Administrator"
                + File.separator + "Desktop"+File.separator+"Test.txt");
        OutputStream out=new FileOutputStream(file);
      PrintUtil p=new PrintUtil(out);
      p.println(123.123);
      p.println(2);
    }
}

系统提供的打印流

打印流分为字节打印流:PrintStream、字符打印流:PrintWriter

构造方法:

public PrintStream(OutputStream out);

public PrintWriter(OutputStream out);
public PrintWriter(Writer out);

继承结构:
在这里插入图片描述
打印流的设计属于装饰设计模式(基于抽象类的设计模式):核心依然是某个类(OutputStream)的功能(write()),但是为了得到更好的操作效果,让其支持的功能更多一些。装饰设计模式,扩展功能特别方便,需要不同的功能时只需要换装饰类即可,但是其类的结构特别复杂。
范例:使用打印流

import java.io.*;
import java.io.File;
import java.util.Date;
public class Test {
    public static void main(String[] args)throws IOException {
        File file = new File("C:Users" + File.separator + "Administrator"
                + File.separator + "Desktop"+File.separator+"Test.txt");
        OutputStream out=new FileOutputStream(file);
        Writer w=new FileWriter(file);
      PrintStream p=new PrintStream(out);
      p.println(2);
//      PrintWriter p1=new PrintWriter(out);
//      p1.print(123.123);
      out.close();
      PrintWriter p2=new PrintWriter(w);
      p2.print("HL");
      w.close();
    }
}

在这里插入图片描述

格式化输出

和C语言用法基本一样。

public PrintStream printf(String format, Object ... args)

范例:格式化输出

import java.io.*;
import java.io.File;
import java.util.Date;
public class Test {
    public static void main(String[] args)throws IOException {
        File file = new File("C:Users" + File.separator + "Administrator"
                + File.separator + "Desktop" + File.separator + "Test.txt");
        OutputStream out = new FileOutputStream(file);
        String name="HL";
        String genter="female";
        int age=18;
        PrintWriter print=new PrintWriter(out);
        print.printf("name:%s,genter:%s,age:%d  1",name,genter,age);
        print.close();
    }
}

在这里插入图片描述

发布了87 篇原创文章 · 获赞 73 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/HL_HLHL/article/details/84931173