| 
 
| 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();
 }
 }
 | 
 |