一、PrintStream
构造方法:
① PrintStream(String fileName)
② PrintStream(OutputStream out)
③ PrintStream(OutputStream out, boolean autoFlush)
public class PrintStreamTest02 {
public static void main(String[] args) {
PrintStream ps = null;
try {
//写到控制台
ps = System.out;
ps.println("打印到控制台");
System.out.println("标准输出流");
//写到指定文件,手动刷新
ps = new PrintStream("..\\..\\java\\PrintStream01.txt");
/*
ps = new PrintStream(new FileOutputStream("..\\..\\java\\PrintStream01.txt"));
//自动刷新
ps = new PrintStream(new FileOutputStream("..\\..\\java\\PrintStream01.txt"),true);
*/
//println方法是将指定类型的数据写到文件中
ps.println(1);
ps.println("哈哈哈");
//write()是以字节的形式写到文件中
ps.write(97);//a
byte[] bytes = {10,98};//换行 b
ps.write(bytes);
ps.write(bytes,0,1);//换行
ps.write(99);//c
//刷新
ps.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (ps != null){
ps.close();
}
}
}
}
System.setOut(PrintStream out):
public class PrintStreamTest01 {
public static void main(String[] args) {
System.out.println("Hello World");
PrintStream ps = System.out;
ps.println("hello zhangsan");
ps.println("hello lisi");
ps.println("hello wangwu");
//可以改变标准输出流的输出方向
/*旧知识回顾
System.gc(); 运行垃圾回收器
System.currentTimeMillis(); 返回当前时间(以毫秒为单位)。
PrintStream ps = System.out; 返回标准输出流对象
System.exit(0); 终止当前运行的Java虚拟机。
System.arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length); 数组扩容
System.setOut(PrintStream out) 重新分配“标准”输出流。
System.setIn(InputStream in) 重新分配“标准”输入流。
*/
try {
//标准输出流不再指向控制台,指向 "log" 文件
PrintStream printStream = new PrintStream(new FileOutputStream("..\\..\\java\\log.txt"));
//修改输出方向到 "log" 文件
System.setOut(printStream);
System.out.println("hello zhangsan");
System.out.println("hello lisi");
System.out.println("hello wangwu");
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
if (ps != null){
ps.close();
}
}
}
}
二、PrintWriter
构造方法:
① PrintWriter(OutputStream out)
② PrintWriter(OutputStream out, boolean autoFlush)
③ PrintWriter(String fileName) throws FileNotFoundException
④ PrintWriter(Writer out)
⑤ public PrintWriter(Writer out, boolean autoFlush)
public class PrintWriterTest01 {
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter("../../java/PrintWriter01.txt");
pw.println(1);
pw.write(10);
pw.write("一");//写字符
pw.append('1');//追加
pw.flush();
pw = new PrintWriter(new FileOutputStream("../../java/PrintWriter02.txt"));
pw.println(2);
pw.flush();
pw = new PrintWriter(new FileOutputStream("../../java/PrintWriter03.txt"),true);
pw.println(3);
pw = new PrintWriter(new FileWriter("../../java/PrintWriter04.txt"),true);
pw.println(4);
}
}