PrintWriter和PrintStream用法

简介

PrintWriter和PrintStream是两个打印流,当我们需要对数据进行输出时,一般用的会比较多。比如说Socket通信,数据通过Socket流入流出,在流出的时候可能会用到PrintWriter。在选择这两个流的时候,如果需要对字符操作用PrintWriter,字节操作则用PrintStream。

使用

当我们用PrintWriter时,需要指定文件名,或者自定义一个字节输出流或字符输出流。

通过PrintStream改变System.out.Println()的输出方向
 System.setOut(new PrintStream(new FileOutputStream("print.txt")));

 System.out.println("哈哈哈啊哈");

System.setOut()可以改变我们的输出方向,加上 PrintStream可以指定输出位置,当我们输出的时候,“哈哈哈啊哈”不会在控制台显示,直接输入到print.txt文件中。

PrintStream实现文件的拷贝
package Print;

import java.io.*;

public class PrintStream_Copy {
    public static void main(String[] args) throws IOException {
        File file=new File("16流");

        BufferedInputStream br=new BufferedInputStream(new FileInputStream(file));

        PrintStream ps=new PrintStream(new FileOutputStream("src\\"+file.getName()),true);//true表示自动刷新

        int temp=0;
        while ((temp=br.read())!=-1){
            ps.print((char) temp);
        }
        br.close();
        ps.close();
        System.out.println("拷贝成功!");
    }
}

文件拷贝成功,但文件夹里面的中文字符会乱码。原因我们之前提到过,请看: FileOutputStream写入中文字符后,然后用FileInputStream一个个读取,出现的乱码问题 

PrintWriter实现文件的拷贝
package Print;

import java.io.*;

public class PrintWriter_Copy {
    public static void main(String[] args) throws IOException {
        File file=new File("16流");

        BufferedReader br=new BufferedReader(new FileReader(file));

        PrintWriter pw=new PrintWriter(new FileWriter("src\\"+file.getName()),true);//为true:println,printf或format方法将刷新输出缓冲区

        String temp=null;

        while ((temp=br.readLine())!=null){
            pw.println(temp);  //每次将一行数据输入到目标位置,并且 刷新流
//            pw.write(temp);  //不换行  连在一起   
        }
        br.close();
        pw.close();
        System.out.println("Copy成功!");
    }
}
总结:

对于这两个打印流而言,个人感觉PrintWriter用的会比较多。当然用的时候还是的根据需求来。


      每日鸡汤: 没有压力的生活,并不是所谓的享福,而是慢性折磨。


Over!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值