这个连接包含了常用的流------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文件简洁。