掌握打印流的操作
掌握格式化输出
1、打印流
在整个 IO 包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream) 和字符打印流(PrintWriter) . 打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如: 小数、整数、字符串等等。
回顾:之前在打印信息的时候需要使用OutputStream, 但是这样一来,所有的数据输出的时候会非常的麻烦, String --> byte[], 打印流中可以方便的进行输出。
在这个类中定义了很多print() 或println() 方法。System.out.println(), 此方法可以打印任何数据类型。
构造方法:
public PrintStream(OutputStream out) -->指定输出位置。
此构造方法接收OutputStream 的子类。
使用 PrintStream 输出信息
import java.io.* ;
public class PrintDemo01{
public static void main(String arg[]) throws Exception{
PrintStream ps = null ; // 声明打印流对象
// 如果现在是使用FileOuputStream实例化,意味着所有的输出是向文件之中
ps = new PrintStream(new FileOutputStream(new File("d:" + File.separator + "test.txt"))) ;
ps.print("hello ") ;
ps.println("world!!!") ;
ps.print("1 + 1 = " + 2) ;
ps.close() ;
}
};
也就是说此时,实际上是将FileOutputStream 类的功能包装了一下。这样的设计在JAVA中称为装饰设计。
2、格式化输出
如果学习过其他语言,比较代表性的就是C语言。
import java.io.* ;
public class PrintDemo02{
public static void main(String arg[]) throws Exception{
PrintStream ps = null ; // 声明打印流对象
// 如果现在是使用FileOuputStream实例化,意味着所有的输出是向文件之中
ps = new PrintStream(new FileOutputStream(new File("d:" + File.separator + "test.txt"))) ;
String name = "李兴华" ; // 定义字符串
int age = 30 ; // 定义整数
float score = 990.356f ; // 定义小数
char sex = 'M' ; // 定义字符
ps.printf("姓名:%s;年龄:%d;成绩:%f;性别:%c",name,age,score,sex) ;
ps.close() ;
}
};

如果,觉得以上的要写很多%s、%d 无法记住的话呢,实际上也可以简单操作,全部使用%s表示。
import java.io.* ;
public class PrintDemo03{
public static void main(String arg[]) throws Exception{
PrintStream ps = null ; // 声明打印流对象
// 如果现在是使用FileOuputStream实例化,意味着所有的输出是向文件之中
ps = new PrintStream(new FileOutputStream(new File("d:" + File.separator + "test.txt"))) ;
String name = "李兴华" ; // 定义字符串
int age = 30 ; // 定义整数
float score = 990.356f ; // 定义小数
char sex = 'M' ; // 定义字符
ps.printf("姓名:%s;年龄:%s;成绩:%s;性别:%s",name,age,score,sex) ;
ps.close() ;
}
};
总结:
1、PrintStream 可以方便的完成输出的功能。
2、在以后的输出中基本上都使用PrintStream 完成,因为比较方便一些。
3、PrintStream 属于装饰设计模式。