打印流
打印流包含字节打印流(PrintStream)和字符打印流(PrintWriter)。
例:定义打印流工具类
package Project.Study.PrintStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
class PrintUtil{ //实现专门的输出操作功能
private OutputStream outputStream; //输出只能依靠OutputStream
/**
* 输出流的输出目标要通过构造方法传递
* @param outputStream
*/
public PrintUtil(OutputStream outputStream){
this.outputStream=outputStream;
}
public void print(int x){ //输出int型数据
this.print(String.valueOf(x)); //调用本类字符串的输出方法
}
public void print(String x){
try{ //采用OutputStream类中定义的方法,将字符串转变为字节数组后输出
this.outputStream.write(x.getBytes());
}catch (Exception e){
e.printStackTrace();
}
}
public void print(double x){ //输出double型数据
this.print(String.valueOf(x));
}
public void println(int x){ //输出数据后换行
this.println(String.valueOf(x));
}
public void println(String x){ //输出数据后换行
this.print(x.concat("\n"));
}
public void println(double x){
this.println(String.valueOf(x));
}
public void close(){ //输出流关闭
try{
this.outputStream.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
public class Test1 {
public static void main(String[]args)throws Exception{
PrintUtil printUtil=new PrintUtil(new FileOutputStream(new File("d:"+
File.separator+"Test"+File.separator+"test3.txt")));
printUtil.println("你好!!!");
printUtil.println("Hello World!!!");
printUtil.println(1+1);
printUtil.println(1.1+1.1);
printUtil.close();
}
}
结果:
事实上PrintStream与PrintWriter这两个类在使用上是完全一样的,方法功能也一样。所以在这里我只挑其中的一个来讲,以PrintStream为例。
PrintStream类的常用操作方法
No. | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public PrintStream(OutputStream out) | 构造 | 通过已有OutputStream确定输出目标 |
2 | public void print(数据类型 参数名称) | 普通 | 输出各种常见数据类型 |
3 | public void println(数据类型 参数名称) | 普通 | 输出各种常见数据类型,并追加一个换行 |
上述的这些方法相当于为我们隐藏了OutputStream类中的writer()方法,即将原本的OutputStream类的功能进行包装,在保持原方法功能不变的情况下,提供更方便的操作,这就是装饰设计模式的体现。
例:使用PrintStream类实现输出
package Project.Study.PrintStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Test2 {
public static void main(String[]args)throws Exception{
//实例化PrintStream类对象,本次利用FileOutputStream类实例化PrintStream类对象
PrintStream printStream=new PrintStream(new FileOutputStream(new File("d:"+
File.separator+"Test"+File.separator+"test3.txt")));
printStream.println("你好 世界!!!");
printStream.println("Hello World!!!");
printStream.println(1+1);
printStream.println(1.1+1.1);
printStream.close();
}
}
结果:
从JDK 1.5开始,Java为PrintStream增加了格式化输出的支持方法:public PrintStream printf(String format,Object… args)。该方法的使用方法类似于C语言的输出语句。
例:格式化输出
package Project.Study.PrintStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class Test3 {
public static void main(String[]args)throws Exception{
String name="小关爱吃汉堡";
int age=19;
double score=99.99999;
PrintStream printStream=new PrintStream(new FileOutputStream(new File("d:"+
File.separator+"Test"+File.separator+"test3.txt")));
printStream.printf("姓名:%s,年龄:%d,成绩:%f",name,age,score);
printStream.close();
}
}
结果: