这个连接包含了常用的流------IO流(总篇章)  

构造方法:

  • PrintWriter(String fileName):使用指定的文件名创建一个新的PrintWriter,而不需要自动执行刷新
  • PrintWriter(Writer out,boolean autoFlush):创建一个新的PrintWriter,out是字符输出流,autoFlush是一个布尔值,如果为真,则println,printf,或format方法刷新输出缓冲区
package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-12-16:16
 */
public class PrintWriterDemo {
    public static void main(String[] args) throws IOException{
        PrintWriter pw = new PrintWriter("test//src//com//testIO//printWriter.txt");
        pw.println("林高禄");
        //pw.flush();
        pw.close();
    }
}

 执行完之后,printWriter.txt文件里的内容为:林高禄

因为是字符流,所以需要刷新,但是close()方法里已经包含flush()方法了,所以不需要再调用了。

 

package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-12-16:16
 */
public class PrintWriterDemo {
    public static void main(String[] args) throws IOException{
        PrintWriter pw = new PrintWriter(new FileWriter("test//src//com//testIO//printWriter.txt"),true);
        pw.println("林高禄6");
        //pw.flush();
        //pw.close();//实际代码,关闭资源的代码还是执行,这里注释是为了掩饰刷新缓冲
    }
}

 执行完之后,printWriter.txt文件里的内容为:林高禄6

这里我们flush()方法和close()方法都没调用,但是数据还是写进文件里了,是因为构造参数里的true,设置为了刷新,所以会把数据写入。

用字符打印流复制Java文件 

package com.testIO;

import java.io.*;

/**
 * @author 林高禄
 * @create 2020-05-10-13:11
 */
public class Copy4 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new FileReader("test//src//com//testIO//BufferStreamDemo.java"));
        PrintWriter pw = new PrintWriter(new FileWriter("test//src//com//testIO//BufferStreamDemo1.txt"),true);
        String line ;
        while ((line=br.readLine())!= null){
            pw.println(line);
        }
        pw.close();
        br.close();
    }
}

 这比字符缓冲输出流复制Java文件简洁。