day19Java-其它IO-PrintWriter-打印流

博客名称
Java-(中级)

PrintWriter-打印流

java.io.Writer 继承者 java.io.PrintWriter

打印流
 	字节流打印流	PrintStream
  	字符打印流	PrintWriter

打印流的特点:
  		A:只有写数据的,没有读取数据。只能操作目的地,不能操作数据源。
  		B:可以操作任意类型的数据。
  		C:如果启动了自动刷新,能够自动刷新。
  		D:该流是可以直接操作文本文件的。
  			哪些流对象是可以直接操作文本文件的呢?
  			FileInputStream
  			FileOutputStream
  			FileReader
  			FileWriter
  			PrintStream
  			PrintWriter
  			看API,查流对象的构造方法,如果同时有File类型和String类型的参数,一般来说就是可以直接操作文件的。
  
  			流:
  				基本流:就是能够直接读写文件的
  				高级流:在基本流基础上提供了一些其他的功能

代码演示1

public class PrintWriterDemo {
	public static void main(String[] args) throws IOException {
		// 作为Writer的子类使用
		PrintWriter pw = new PrintWriter("pw.txt");

		pw.write("hello");
		pw.write("world");
		pw.write("java");
		
		pw.close();
	}
}
1:可以操作任意类型的数据。
  		print()
  		println()
2:启动自动刷新
  		PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
  		还是应该调用println()的方法才可以
  		这个时候不仅仅自动刷新了,还实现了数据的换行。
  
  		println()
 		其实等价于于:
 		bw.write();
 		bw.newLine();		
 		bw.flush();

代码演示2

public class PrintWriterDemo2 {
	public static void main(String[] args) throws IOException {
		// 创建打印流对象
		// PrintWriter pw = new PrintWriter("pw2.txt");
		PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);

		// write()是搞不定的,怎么办呢?
		// 我们就应该看看它的新方法
		// pw.print(true);
		// pw.print(100);
		// pw.print("hello");

		pw.println("hello");
		pw.println(true);
		pw.println(100);

		pw.close();
	}
}
需求:DataStreamDemo.java复制到Copy.java中
数据源:
  		DataStreamDemo.java -- 读取数据 -- FileReader -- BufferedReader
目的地:
  		Copy.java -- 写出数据 -- FileWriter -- BufferedWriter -- PrintWriter

代码演示

public class CopyFileDemo {
	public static void main(String[] args) throws IOException {
		// 以前的版本
		// 封装数据源
		// BufferedReader br = new BufferedReader(new FileReader(
		// "DataStreamDemo.java"));
		// // 封装目的地
		// BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));
		//
		// String line = null;
		// while ((line = br.readLine()) != null) {
		// bw.write(line);
		// bw.newLine();
		// bw.flush();
		// }
		//
		// bw.close();
		// br.close();

		// 打印流的改进版
		// 封装数据源
		BufferedReader br = new BufferedReader(new FileReader(
				"DataStreamDemo.java"));
		// 封装目的地
		PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"), true);
		
		String line = null;
		while((line=br.readLine())!=null){
			pw.println(line);
		}
		
		pw.close();
		br.close();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值