黑马程序员技术交流社区

标题: 键盘录入,并且输出 [打印本页]

作者: 大大的心    时间: 2014-12-4 21:04
标题: 键盘录入,并且输出
/*
* 字符流:
* 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();
}
*/
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2