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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海生 中级黑马   /  2014-9-17 14:12  /  972 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.awt.im.InputContext;
import java.io.IOException;
import java.io.InputStream;
public class ReadIn {
/**
* 程序需求:
* 当录入一行数据后,就将该数据进行打印。
* 如果录入的数据是over,那么停止录入。
*
* 读取键盘录入。
* Systen.out是标准的控制台输出设备。
* System.in是标准的键盘输入设备。
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//定义一个输入设备in
InputStream in = System.in;
//定义一个缓冲区
StringBuilder sb = new StringBuilder();
while(true){
//读取一个数据
int ch = in.read();
//判断是否是enter回车。
if(ch == '\r')
continue;
//如果是回车符则输出缓冲区中的数据。
if(ch=='\n')
{
//将获取的数据转换为字符串
String s = sb.toString();
//如果字符串是over那么就结束录入
if("over".equals(s))
break;
//打印字符串
System.out.println(s.toString());
//删除缓冲区的数据,每次打印后都需要将缓冲区的数据清除一下。
sb.delete(0, sb.length());
}
//输入字符
else
sb.append((char)ch);
}
}
}
/*
* 通过刚才的键盘录入一行数据并打印,发现其就是readLine的方法原理,
* 那么是否可以通过readLine方法来完成键盘录入一行数据呢?(字符流)
* readline是BufferedReader类中的方法。而键盘录入的read方法是inputSDtream类中的方法。(字节流)
* 那么能不能将字节流转成字符流再使用字符缓冲区的readline方法。
* */
键盘录入的一下操作:
package day19;
import java.io.*;
public class ReadIn1 {
/**
* *
* 通过刚才的键盘录入一行数据并打印,发现其就是readLine的方法原理,
* 那么是否可以通过readLine方法来完成键盘录入一行数据呢?(字符流)
* readline是BufferedReader类中的方法。而键盘录入的read方法是inputSDtream类中的方法。(字节流)
* 那么能不能将字节流转成字符流再使用字符缓冲区的readline方法。
* @param args
*
* 1.源:键盘录入
* 目的:控制台
* 2.需求:想把键盘录入的数据存储到一个文件中。
* 源:键盘。
* 目的:文件。(字节输出流)就把System.in变为new FileOutputStream()
* 3.需求:想将一个文件的数据打印在控制台上
* 源:文件
* 目的:控制台。
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根
//获取键盘录入对象
//InputStream in = System.in;
//将字节流对象转换成字符流对象,使用转换流:InputStreamReader
//InputStreamReader isr = new InputStreamReader(in);
//为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader
//BufferedReader bufr = new BufferedReader(isr);
//前面三句合成为一句
//键盘录入
//BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
//读取文件数据
BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream("out.txt")));
//OutputStream out = System.out;
//OutputStreamWriter osw = new OutputStreamWriter(out);
//BufferedWriter bufw = new BufferedWriter(osw);
//输出到文件。
//BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("out.txt")));
//控制台输出
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
String line = null;
while((line = bufr.readLine())!=null){
if("over".equals(line))
break;
//System.out.println(line.toUpperCase());
bufw.write(line.toUpperCase());
bufw.newLine();
bufw.flush();
}
bufr.close();
}
}

0 个回复

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