A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大大的心 中级黑马   /  2014-12-4 21:04  /  936 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
* 字符流:
* reader
* writer
*
* BufferedWriter
* BufferedReader
*
*
*
* 字节流:
* InputStream
* OutputStream
*
*BufferedInputStream
*BuffeedOutputStream
*
*
* 通过刚才的键盘录入一行数据并打印其大写,发现其实就是读一行数据的原理。也就是readLine方法。
*
* 能不能直接使用readLIne方法完成键盘录入一行数据的获取呢》
*
* readLine方法是BufferedReader方法。
* 而键盘录入的read方法是字节流InputStream的方法。
*
* 那么能不能将字节流转成字符流,再使用字符流的缓冲区的readLIne方法呢?
*/
import java.io.*;
class TransStreamDemo
{
public static void main(String[] args)throws IOException
{
  //获取键盘录入对象
//  InputStream in=System.in;
  //将字节流对象转成字符流对象,使用转换流InputStreamReader
// InputStreamReader isr=new InputStreamReader(in);
  //为了提高效率,将字符串缓冲区技术高效操作,使用BufferedReader
// BufferedReader bufr =new BufferedReader(isr);
  
  
  //键盘录入最常见写法:
  BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  
  //OutputStream out=System.out;//OutputStream是字符流通向字节流的桥梁。
  //OutputStreamWriter osw=new OutputStreamWriter(out);
  //BufferedWriter bufw=new BufferedWriter(osw);
  //3句变1句:
  BufferedWriter bufw=new BufferedWriter(new OutputStreamWriter(System.out));
  
  String line=null;
  while((line=bufr.readLine())!=null)
  {
   if("over".equals(line))
    break;
   bufw.write(line.toUpperCase());
   bufw.newLine();
   bufw.flush();
  }
  bufr.close();
}

/*方式1:
public static void main(String[] args)throws IOException
{
  //获取键盘录入对象
  InputStream in=System.in;
  //将字节流对象转成字符流对象,使用转换流InputStreamReader
  InputStreamReader isr=new InputStreamReader(in);
  //为了提高效率,将字符串缓冲区技术高效操作,使用BufferedReader
  BufferedReader bufr =new BufferedReader(isr);
  String line=null;
  while((line=bufr.readLine())!=null)
  {
   if("over".equals(line))
    break;
   System.out.println(line.toUpperCase());
  }
  bufr.close();
}
*/
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马