1.打印流
/*如果使用OutputStream输出数据,需要将数据变为字节数组输出,使用起来不是很方便;
为了解决使用OutputStream输出数据的不足,java提供了一套专门输出数据的类PrintStream(打印字节流)和PrintWriter(打印字符流);
public class PrintStream extends FilterOutputStream implements Appendable, Closeable{}
public class PrintWriter extends Writer {}
在PrintWriter类中提供了一系列的print()和println();支持各种类型的输出,不再使用write();
在整个的操作过程中,虽然操作的形式不同,但是本质上仍然是基于Output类的方法完成的;
这种设计模式,java中叫装饰模式;相当于将一个功能不足的操作类,通过某些类的包装,形成更好用的工具类;
在实际的开发中,只要是由程序输出内容,都会采用打印流模式完成,但是需要明确的是打印流仍然需要OutputStream的支持;*/
PrintStream ps1=new PrintStream(new FileOutputStream(new
File("D:\\testio\\a.txt")));
ps1.println(true);
ps1.println("hello");
ps1.print(1.2);
ps1.println(1);
ps1.println("我是文件的结尾");
ps1.close();
2.JDk1.5对打印流的支持
/*JDK1.5之后的改进
所有的输出数据都要求使用打印流完成,但是JDK1.5之后增加了一种新的输出,格式化输出;
public PrintWriter printf(String format,Object... args){}
public PrintWriter printf(Locale l,String format,Object... args){}
如果需要格式化输出就需要一些标记:
整数:%d
字符串:%s
小数:%f
字符:%c*/
String name="mike";
int age=18;
double score=59.444;
PrintStream ps=new PrintStream(new FileOutputStream(new File("D:\\testio\\a.txt")));
System.out.printf("姓名:%s,年龄%d,分数%5.2f",name,age,score);//实际开发中不会用到此类输出;
ps.close();
/* JDk1.5后String类新增了一个格式化字符串的方法
public static String format(String format, Object... args)
*/
String name1="mike";
int age1=18;
double score1=59.444;
String format = String.format("姓名:%s,年龄%d,分数%5.2f", name1,age1,score1);
System.out.println(format);