文章目录
自己设计一个简单打印流
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();
}
}