一、 打印流
1. 打印流提供了打印方法,可以将各种数据类型原样打印,可以操作输出流和文件
2. PrintStream
提供操作字节功能,如果包装的是缓冲流可设置自动flush,可设置字符集
PrintWriter
没有操作字节功能,内部有缓冲区,即使自动刷新设置为true,可设置字符集
3. 打印流的构造方法
PrintStream的构造方法:
public PrintStream(File file) 创建一个新的打印流,不带自动行刷新,用指定的文件。
public PrintStream(OutputStream out) 创建一个新的打印流。
PrintWriter的构造方法:
public PrintWriter(File file) 创建一个新的PrintWriter,无线自动冲洗,用指定的文件。
public PrintWriter(Writer out) 创建一个新的PrintWriter,无线自动冲洗。
public PrintWriter(OutputStream out) 创建一个新的PrintWriter,无线自动冲洗,从现有的OutputStream。
package print;
import java.io.*;
public class PrintStreamDemo {
public static void main(String[] args) {
File f=new File("c:"+File.separator+"test.txt");
PrintStream ps=null;
try {
ps=new PrintStream(f); // 打印到文件中
ps.println("\t白日依山尽");
ps.println("\t黄河入海流");
ps.println("\t欲穷千里目");
ps.println("\t更上一层楼");
System.out.println("打印完毕");
} catch (Exception e) {
e.printStackTrace();
}finally{
ps.close();
}
}
}
运行结果:
package print;
import java.io.*;
public class PrintStreamDemo2 {
public static void main(String[] args) {
File f=new File("c:"+File.separator+"test.txt");
OutputStream out=null;
PrintStream ps=null;
try {
out=new FileOutputStream(f);
BufferedOutputStream bs=new BufferedOutputStream(out);
ps=new PrintStream(bs); // 将BufferedOutputStream包装到PrintStream中
ps.println("降龙十八掌");
ps.println("六脉神剑");
ps.println("孙子兵法");
ps.flush();
System.out.println("打印完毕");
} catch (Exception e) {
e.printStackTrace();
}finally{
ps.close();
}
}
}
运行结果:
package print;
import java.io.*;
public class PrintWriterDemo {
public static void main(String[] args) {
File f=new File("c:"+File.separator+"test.txt");
PrintWriter pw=null;
try {
pw=new PrintWriter(f);
pw.println("降龙十八掌");
pw.flush();
pw=new PrintWriter(new FileWriter(f,true));
pw.println("六脉神剑");
pw.flush();
pw=new PrintWriter(new FileOutputStream(f,true));
pw.println(false);
pw.println('W');
pw.flush();
System.out.println("打印完毕");
} catch (Exception e) {
e.printStackTrace();
}finally{
pw.close();
}
}
}
运行结果:
package printstream;
import java.io.*;
public class PrintfDemo {
public static void main(String[] args) {
File f=new File("c:"+File.separator+"test.txt");
OutputStream out=null;
PrintStream ps=null;
try {
out=new FileOutputStream(f);
ps=new PrintStream(out);
ps.printf("姓名:%s,年龄%d,性别:%c","张三",20,'男'); // 格式化打印
System.out.println("打印成功!");
} catch (Exception e) {
e.printStackTrace();
}finally{
ps.close();
}
}
}
运行结果: