通过转换流把字节流转为字符流

/**
 * 通过转换流实现键盘输入屏幕输出
 */
public class ConvertStream {
    public static void main(String[] args) {
        BufferedReader br=null;
        BufferedWriter bw=null;
        try{
            //通过InputStreamReader转换流将System.in字节流转换为字符流
            br=new BufferedReader(new InputStreamReader(System.in));
            //通过OutpuStreamWriter转换流将System.out字节流转换为字符流
            bw=new BufferedWriter(new OutputStreamWriter(System.out));
            String temp="";
            while(true){
                bw.write("请输入:");
                bw.flush();
                String input= br.readLine();
                if ("exit".equals(input)){
                    break;
                }
                bw.write("你输入的是:"+input);
                bw.newLine();

            }

        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if (br!=null){
                    br.close();
                }
                if (bw!=null){
                    bw.close();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
/**
 * 通过字节流读取文本文件并添加行号
 */
public class LineNumber2Demo {
    public static void main(String[] args) {
        BufferedReader br=null;
        BufferedWriter bw=null;
        try{
            //将字节流通过转换流转换为字符流
            br=new BufferedReader(new InputStreamReader(new FileInputStream("")));
            bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("")));
            String temp="";
            int i=1;
            while((temp=br.readLine())!=null){
                bw.write(i+","+temp);
                bw.newLine();
                i++;
            }
            bw.flush();
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                //判断输入流输出流是否为空,不为空关闭流
                if (br!=null){
                    br.close();
                }
                if (bw!=null){
                    bw.close();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }

下面这个是换了一个字符输出流  PrintWriter是节点流,不是处理流,可以直接连接对象也具有缓冲流的效果

上面代码的BufferedWriter缓冲流是处理流 需要包裹节点流才能实现缓冲流提高读写效率

/**
 * 字符输出流
 * java的io流中专门提供了用于字符输出流对象PrintWriter,该对象具有自动刷新缓冲字符输出流不用调用输出流对象的Flush方法了
 * 而且可以通过Println()方法实现自动换行
 * 通过这个也可以看出在java中io流输入输出流并没有较强的对应关系灵活性很高
 */
public class LineNumberDemo3 {
    public static void main(String[] args) {
        BufferedReader br=null;
        PrintWriter pw=null;
        try{
            br=new BufferedReader(new InputStreamReader(new FileInputStream("")));
            pw=new PrintWriter("");
            String temp="";
            int i=1;
            while((temp= br.readLine())!=null){
                pw.println(i+","+temp);
                i++;
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{

            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值