JavaSE|打印流、PrintWriter

JavaSE|打印流、PrintWriter

打印流

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

打印流特点:

  • 只有写数据的,没有读取数据。只能操作目的地不能操作数据源。
  • 可以操作任意类型的数据。
  • 如果启动了自动刷新,能够自动刷新。
  • 该流是可以直接操作文本文件的。

哪些流可以直接操作文本文件?

  • FileInputStream
  • FileOutputStream
  • FileReader
  • FileWriter
  • PrintStream
  • PrintWriter
  • 看API,查流对象的构造方法,如果同时有File和String类型的参数,一般可以直接操作文件。

另一种流的分类方法:

  • 基本流:能够直接读写文件的流
  • 高级流:在基本流基础上提供了一些其他的功能

PrintWriter

PrintWriter作为字符输出流的基本用法:

		PrintWriter pw = new PrintWriter("pw.txt");
		
		// 文件内容为:helloworldJava
		pw.write("hello");
		pw.write("world");
		pw.write("Java");
		
		pw.close();

PrintWriter写任意类型数据:
使用print()或者println()方法都可以。

		PrintWriter pw = new PrintWriter("pw.txt");
		
		// 文件内容为:true100.0world
		pw.print(true);
		pw.print(100d);
		pw.print("world");
		
		pw.close();

PrintWriter启动自动刷新:

  • 启用了自动刷新:PrintWriter pw = new PrintWriter(new FileWriter(“pw.txt”),true);
  • 如果启用了自动刷新,则只有在调用 println、printf 或 format 的其中一个方法时才可能完成此操作。

println()其实等价于:

bw.write();
bw.newLine();
bw.flush();
		PrintWriter pw = new PrintWriter(new FileWriter("pw.txt"),true);
		
		// 文件内容为:
		// Pig
		// true
		// 50
		pw.println("Pig");
		pw.println(true);
		pw.println(50);
				
		pw.close();

PrintWriter复制文件:

		BufferedReader br = new BufferedReader(new FileReader("BufferedReaderDemo.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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值